EL表达式无法解析、EL表达式直接显示其中的文字
前言:EL表达式的使用
首先EL表达式是不需要导包的。
EL 提供“.“和“[ ]“两种运算符来存取数据。
当要存取的属性名称中包含一些特殊字符,如 . 或 - 等并非字母或数字的符号,就一定要使用“[ ]“。例如:
$ { user. My-Name}应当改为$ {user[“My-Name”]}
一、问题描述:
我在maven项目中,在用EL表达式取值,前端网页直接显示${loginUser.uname }。
二、原因:可能是由于servlet版本过低
如创建项目时的2.3版本的servlet
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
</web-app>
三、解决办法:
1.用EL時,要設isELIgnored="false"
//有效
<%@page isELIgnored="false"%>
2.修改项目Web.xml文件
例如:将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">
</web-app>
如果修改后无效的话,需要:
在项目存放目录下的.settings文件夹中的org.eclipse.wst.common.project.facet.core.xml文件中的version="2.3"更改为3.1,与上边的版本号相同
3.还可以对web.xml进配置
注意:如下配置同样2.5版本以上的才能支持
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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_2_5.xsd"
version="2.5">
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<el-ignored>false</el-ignored>
</jsp-property-group>
</jsp-config>
</web-app>