当前位置: 首页 > 知识库问答 >
问题:

Spring Boot设置jstl默认打开jsp

杨曜瑞
2023-03-14

我正在通过jstlSpring启动打开jsp页面

我在pom中包括了JSTL和Jasper。xlml

<dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
</dependency>
<dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <scope>provided</scope>
</dependency>

我将配置添加到我的Web应用程序中

 @Bean
    public ViewResolver getViewResolver(){
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }

这是控制器中的请求映射

@RequestMapping(value="/linkExpired", method = RequestMethod.GET)
    public String linkExpired(HttpServletResponse response) {
        return "LinkExpired";
    }

我的jsp文件位于webapp/WEB-INF/views中

在我将thymeleaf依赖项添加到pom之前,一切都很正常

<dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf-spring4</artifactId>
</dependency>

我开始出现以下异常:

组织。springframework。网状物util。NestedServletException:请求处理失败;嵌套异常为org。百里香叶。例外情况。TemplateInputException:解析模板时出错

我试图添加此配置,但仍然出现相同的错误:

@Override
        public void configureDefaultServletHandling(
                DefaultServletHandlerConfigurer configurer) {
            configurer.enable();
        }

有人知道如何强制JSTL打开jsp页面而不是thymeleaf吗?

共有1个答案

空夕
2023-03-14

我认为您缺少ServletContextTemplateResolver。因此,创建它:

<bean id="templateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
     <property name="prefix" value="/WEB-INF/views/" />
     <property name="suffix" value=".html" />
     <property name="viewNames" value="thymeleaf/*" />
     <property name="templateMode" value="HTML5" />
</bean>

为了保持JSP,您将把jspResolver和templateResolver放在一起,并且就在控制器中,您可以为JSP创建请求映射,为模板创建另一个请求映射。如果您想了解如何创建控制器,这里已经回答了一个问题:同时使用Thymeleaf和JSP

 类似资料:
  • 我是测试自动化的初学者,尝试学习硒。 我用C#实现了selenium Chrome Webdriver的自动化 多谢了。

  • WPS和Office在功能上各有千秋,所以想在电脑中安装两个软件。E立方管理平台选择的是,如果两个软件都存在,会优先选用Excel。如果我们电脑默认是W.P.S,那么在使用Excel打开时,模板中有超链接,它会用W.P.S打开,这样就同时打开了两个软件,很不爽!所以我把默认打开表格的程序设置成了Excel,这样就不致于同时打开两个软件。由于W.P.S设置起来比较隐蔽,我就将它记录到了这里。 在电脑

  • 我想从缺省的图库中选择文件,如图像,视频,但当我使用下面的函数打开图库时,它也给了我一些不必要的选项来选择文件,如“文件管理器,文件管理器”。这些应用程序安装在我的电话上,我不想要那些应用程序时,我打开和选择媒体文件。 plz帮助

  • 我正在处理一个JavaFX项目,其中有一堆静态HTML&JS页面,我正在加载,用户可以签出并单击链接等。 现在,通常当我们使用或之类的浏览器时,调用print命令完成打印任务。 但在中发生的情况不一样。我如何在JavaFX的网页呈现机制中启用打印。 以下是我到目前为止的代码: 任何建议或指示都会很好。谢谢你..:-)

  • 我有以下场景:安装了firefox和chrome的Ubuntu16.04机器,chrome是我的默认浏览器。 我在shell中检查以下操作: 并且不会出现firefox的任何一面,总是Chrome。这样很好。还要检查: 点击桌面文件。html->chrome启动 现在奇怪的是,如果我跑了: 出于某种奇怪的原因,它总是打开Firefox。我不知道为什么,有人能帮我吗?

  • 我正在使用带有Spring Boot(2.3.3版)的H2数据库和H2数据库的所有默认设置。 这是我申请的所有文件。 pom.xml