解决struts2框架jsp中el表达式失效

本文探讨了在JSP页面中EL表达式失效的原因,并提供了在web.xml和单个页面中启用EL表达式的解决方案。解释了不同Servlet版本对EL表达式支持的影响,并指出遵循Servlet 2.4规范的WEB应用默认启用EL表达式。
摘要由CSDN通过智能技术生成

问题描述:

在jsp页面直接使用el表达式获取Action中属性的值,${message}结果在页面直接输出了${message}.原因是el表达式失效

解决方案:

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}

发现一个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的版本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值