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>
发布了40 篇原创文章 · 获赞 16 · 访问量 8663

猜你喜欢

转载自blog.csdn.net/qq_40366738/article/details/100547682