之前搭建的框架什么的都好好的, 然后今天在搭建SpringMVC+Shiro时忽然遇见这么个问题.
定义在全局的${ctx}在页面上完全打印出了${ctx}
原本以为又是shiro或者SpringMVC代理了Servlet把jstl的tld或者lib的请求给拦截了.所以查了许久没搞定.
最终找到的问题答案是:
========================================
< xml version="1.0" encoding="UTF-8" >
<web-app xmlns:xsi="" xmlns="" xmlns:web="" xsi:schemaLocation="" version="2.5">
因为jstl1.1的EL表达式在servlet2.5默认是禁用的,需要在JSP页面中加入:<%@ page isELIgnored="false"%>
或者改为2.4,因为jstl1.1在servlet2.4中默认是启用的。
< xml version="1.0" encoding="UTF-8" >
<web-app xmlns:xsi="" xmlns="" xmlns:web="" xsi:schemaLocation="" version="2.4">
测试结果:
在Tomcat5(apache-tomcat-5.5.34)中:
使用2.4, EL正常
使用2.5, EL失效
使用2.5, 并在每个页面上添加:<%@ page isELIgnored="false"%>, EL正常
在Tomcat6(apache-tomcat-6.0.33)中:
使用2.4及2.5(未加<%@ page isELIgnored="false"%>),EL均正常
=============================================