struts2.0 el不起作用

本文详细介绍了如何在不同版本的web.xml中正确配置EL表达式,包括全局启用和单个页面启用的方法,并解释了不同Servlet版本下EL表达式的默认状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.设置整个项目使用el表达式,需要在web.xml中加上 (控制一个项目)
< jsp-config >
< jsp-property-group >
< el-ignored >false < / el-ignored >
< /jsp-property-group >
< / jsp-config >

2.设置某个jsp页面使用el表达式,需要在jsp页面加上(控制单个页面)
<%@ page isELIgnored="false"%>

3.看你的web.xml文件中头的引用应该是 2.4.xsd

${requestScope.hello} 
sdf
将JSP页面中的<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>改为<%@ taglib uri=http://java.sun.com/jstl/core_rt prefix="c"%>即可。

发现一个el表达式在JSP2.0中不起作用的问题。反复调试多次,发现是web.xml中出了问题。猜测是版本的问题,但只知道了如何修改,不知道为什么那样修改。

web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version
="2.4">
2.4版本默认启用el表达式,如果使用2.5版本,默认el表达式是关闭的

<?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" version="2.5" 
    xsi:schemaLocation
="http://java.sun.com/xml/ns/javaee   
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
>
那么对应2.5的web.xml -->  jsp页面里应该增加
<%@ page isELIgnored="false"%>

发现原因:一句话,凡是部署描述文件遵循Servlet2.4规范的WEB应用,EL表达式的计算默认是启用的,而未遵循的,则EL表达式的计算默认是禁用的。

所以解决方案还可以是:将web.xml中的DTD(文档类型定义)改问2.4的版本 
或者直接使用3.0:
web.xml
<?xml version="1.0" encoding="GBK"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

	<!-- 定义Struts2的核心Filter -->
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<!-- 让Struts2的核心Filter拦截所有请求 -->
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值