一个偶然的机会遇到了这样一个问题:页面通过EL表达式获取java后台设置的值,结果原样显示el表达式。
后端设置属性值代码如下:
@RequestMapping(value{"/","/welcome**"},method=RequestMethod.GET)
public ModelAndView welcome(){
ModelAndView page = new ModelAndView();
page.addObject("title", "welcome");
page.addObject("message", "hello,this is a welcome page.");
page.setViewName("hello");
return page;
}
jsp页面获取值:
<body>
<h2>title:${title }</h2>
<h2>message:${message }</h2>
</body>
运行服务器,访问页面出现如下结果:
title:${title }
message:${message }
最后的解决办法有两个,个人倾向于第二个:
- 页面上增加<%@ page isELIgnored=”false” %>代码手动开启el。
使用最新的Servlet3.1规范,不要使用默认的2.3dtd,修改web.xml文件。
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>securityannotation</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
EL表达式不生效问题
本文探讨了在Java Web应用中遇到的一个问题:EL表达式未能正确解析并显示后端设置的值。通过分析,提供了两种解决方案:一是手动开启EL支持;二是升级Servlet规范版本。
600

被折叠的 条评论
为什么被折叠?



