在使用springboot整合jsp时,运行到网页上显示的是El表达式原样,即springboot解析jsp页面的EL表达式失效:
代码很简单,就是用springboot整合jsp,核心代码如下:
pom文件:
<!-- 引入springboot内嵌Tomcat对jsp的解析依赖,不添加
该依赖解析不了jsp,如果只是展示jsp页面,只用添加以下一个依赖-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<version>7.0.59</version>
</dependency>
</dependencies>
<build>
<!-- springboot集成jsp:springboot项目默认推荐使用的
前端引擎为thymeleaf,现在要使用springboot集成jsp,需要手动指定jsp最后
编译的路径,而且springboot集成jsp编译的路径是springboot规定好的位置:
META-INF/resources-->
<resources>
<resource>
<!-- 源文件夹-->
<directory>src/main/webapp</directory>
<!-- 将源文件夹指定到特定文件夹META-INF/resources-->
<targetPath>META-INF/resources</targetPath>
<!-- 指定源文件夹中的哪个资源要编译进行-->
<includes>
<include>*.*</include>
</includes>
</resource>
</resources>
application.properties文件:
#使用springboot整合jsp时配置视图解析器
#视图解析器前缀,为/,表示就在webapp根目录下
spring.mvc.view.prefix=/
#视图解析器后缀
spring.mvc.view.suffix=.jsp
控制器对象文件:
/**
* 处理器对象
*/
@Controller
public class MyController {
//处理器方法
@RequestMapping("/hello")
public ModelAndView hello(){
//创建ModelAndView对象
ModelAndView mv=new ModelAndView();
mv.addObject("message","hello,springboot!!!");
//视图跳转
mv.setViewName("say");
return mv;
}
}
jsp文件:
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<html>
<head>
<title>springboot整合jsp</title>
</head>
<body>
<h1>${message}</h1>
</body>
</html>
运行时EL表达式没起到作用,经过度娘,终于找到了解决方法。原因具体怎样我不确定,也许是springboot内嵌的Tomcat支持的jsp默认是不解析EL表达式的吧。
解决办法:在jsp文件的顶部加入
isELIgnored="false"
表示不要忽视EL表达式。
接图:
添上这行代码后再次运行,成功!
希望能帮到大家!!!