表达式语言,不显示变量值

时间:2011-06-28 10:36:03

标签: java jsp el

我是Java EE中的新手,我正在尝试使用.war文件http://community.jboss.org/wiki/ThreadDumpJSP,但似乎index.jsp文件没有显示变量,我只看到{{1}我在${thr.name} ${thr.state} ${thr.priority} ${thr.daemon}jboss

上对其进行了测试

编辑:

这是代码:

tomcat 6

package org.jboss.varia.threaddump.ThreadDumpBean; import java.io.Serializable;import java.util.*; public class ThreadDumpBean implements Serializable { private final Map traces; public ThreadDumpBean() {traces = new TreeMap(THREAD_COMP);traces.putAll(Thread.getAllStackTraces());} public Collection getThreads() {return traces.keySet();} public Map getTraces() {return traces;} /*** Compare the threads by name and id.*/ private static final Comparator THREAD_COMP = new Comparator() { public int compare(Thread o1, Thread o2) { int result = o1.getName().compareTo(o2.getName()); if (result == 0) { Long id1 = o1.getId(); Long id2 = o2.getId(); return id1.compareTo(id2); } return result; }}; }

.jsp

1 个答案:

答案 0 :(得分:1)

如果在Tomcat 6上部署JSP页面,则需要启用表达式语言才能使用它(出于向后兼容性的原因,默认情况下禁用此选项)。这可以通过创建一个web.xml文件来完成,其中Servlet规范的版本设置为至少2.4。您的web.xml文件应如下所示:

<web-app id="TreadDumpApp" version="2.4"
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";>

</web-app>

要在JSP标记属性之外使用EL,您需要向web.xml添加更多魔术的事件

<web-app {...magic from above...}>    
<jsp-property-group>  
<url-pattern>/*</url-pattern>  
<el-ignore>false</el-ignore>
</jsp-property-group>
</web-app>

您还应该能够强制此单页允许EL,但在页面顶部添加此声明:

<%@ page isELIgnored ="false" %> 

是的,这种双重否定非常优雅,是吗? ; - )