今天用maven构建一个ssh项目的时候,jsp页面的EL表达式取不了值。
后来发现,在jsp页面里面 ,[<%@ page isELIgnored="false"%>] 加上这一句就好了。
这一句的意思就是,EL表达式不要以字符串的形式解析出来,如果isELIgnored=“true” ,那么就会将EL表达式以字符串的形式解析显示出来。
那么为什么我新建的项目会这样呢? 因为我的web.xml文件没有加上这一段约束
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
据百度:
如果web.xml中声明部分的schema版本为2.5或者以上,而tomcat使用的是5.5.x以下的版本的时候就会出现在页面直接显示而不解析jstl/el表达式。如果web.xml中声明部分的schema版本为2.5或者以上,tomcat使用使用的是6.0以上则不出现这种问题。
在jsp页面的<%@ page isELIgnored="false" %>声明中,将isELIgnored属性设为false,EL表达 式才可以正常显示,在2.4版本之前的版本,isELIgnored默认为true,所以只能在JSP页面设置这个属性为false才可以。2.4版本中isELIgnored属性默认为false,因此EL表达式可以直接使用。