struts2.0 el不起作用

struts2.0 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}
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的版本


你可能感兴趣的:(struts2.0 el不起作用)