java - 同时包含 HTML 和 JSP ViewResolvers

标签 java jsp spring-mvc

我正在尝试在应用程序中使用 Thymeleaf 的 ServletContextTemplateResolver 以及 InternalViewResolver 来解析 html我的 Controller 中返回了 jsp View 。我已将模板解析器的顺序设置为 0,因为具有最高顺序的解析器是链中的最后一个解析器:

    /** Thymeleaf HTML Template View Resolver **/
    @Bean
    public ServletContextTemplateResolver getServletContextTemplateResolver() {
        ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
        templateResolver.setPrefix("/WEB-INF/html/");
        templateResolver.setSuffix(".html");
        templateResolver.setTemplateMode("HTML5");
        templateResolver.setOrder(0);
        return templateResolver;

    }
    /** JSP View Resolver **/
    @Bean
    public InternalResourceViewResolver getInternalResourceViewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/jsp/");
        resolver.setSuffix(".jsp");
        resolver.setOrder(1);
        return resolver;
    }

但是我的 View 总是解析为 html。是否可以包含额外的逻辑(或者可能解析器配置不正确?)或传递给我的 ModelAndView 对象,以确保我的 jsp View 映射到内部 View 解析器,并且 html vies 映射到我的模板解析器?即像 ModelAndView mav = new ModelAndView("mypage.html");//当然解析为 mypage.html.jsp 。

最佳答案

对于 ServletContextTemplateResolver(即 TemplateResolver 的实现),您可以为其应忽略的文件指定“模式”。

试试这个方法:see here for any other applicable method

public void setResolvablePatterns(Set<String> resolvablePatterns)

更新

看起来与 Spring App 一起使用的 ThymeLeaf Resolver 完全不同:org.thymeleaf.spring4.view.ThymeleafViewResolver

查看此处定义的 bean: http://www.thymeleaf.org/doc/tutorials/2.1/thymeleafspring.html#views-and-view-resolvers-in-spring-mvc

<bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
  <property name="templateEngine" ref="templateEngine" />
  <property name="order" value="1" />
  <property name="viewNames" value="*.html,*.xhtml" />
</bean>

关于java - 同时包含 HTML 和 JSP ViewResolvers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31004325/

相关文章:

java - 为了使用 Java 提交表单,在表中使用输入框的最佳方式是什么?

java - Information_schema 不是从 jooq for SQL Server 生成的

Java 预处理器检查操作系统

java - 哈希表中的数据被覆盖

javascript - 用户既不能下载 javascript 代码/文件,也不能下载 css 文件

spring - 使用 Spring Boot 的 SPA - 为非 API 请求提供 index.html

java - 如何在文本字段中获取日期

java - 无法获取从jsp到servlet的传递值

java - 以编程方式修改 Spring bean

java - 使用 JSP 显示 Spring 处理的异常消息