【发布时间】:2011-03-10 14:00:18
【问题描述】:
我们正在尝试将 Java Web 应用程序从 Tomcat 5.5 服务器迁移到更现代的 Tomcat 6.0.24 服务器,但 JSP EL 存在一些问题。
服务器无法识别放置在 XML 标记文件中的表达式,服务器只是将它们呈现为文本(就像在下面的示例中一样)。 任何想法为什么?
<object id="${id}"
classid="java:${code}.class"
type="application/x-java-applet;version=1.5"
archive="${archive}" codebase="${codebase}"
height="${height}" width="${width}" >
<param name="code" value="${code}" />
<param name="codebase" value="${codebase}" />
<param name="archive" value="${archive}" />
<param name="type" value="application/x-java-applet;version=1.5"/>
<param name="mayscript" value="true" />
<param name="cache_archive" value="wetorrent.jar,weupnp.jar" />
<param name="cache_version" value="0.0.0.17,0.0.0.17" />
<strong>
<span style="cursor: pointer" onclick="window.open('http://www.java.com/','_blank','toolbar=1,scrollbars=1,location=1,statusbar=1,menubar=1,resizable=1');">
This browser does not have a Java Plug-in.<br />
Get the latest Java Plug-in here.</span>
</strong>
</object>
奇怪的是,在包含标签 EL 表达式的 JSP 中完美运行。
我什至尝试在 .tag 文件中设置 isELIgnored="false" 属性,但出现此错误:
标签指令:多次出现不同值的 isELIgnored 是非法的(旧:真,新:假)
旧的(真实的)价值从何而来?我们从未指定过。
其他一些信息:
taglib 总是包含在(在 .jsp 和 .tag 文件中)使用
我们将standard.jar 和jstl.jar 放在服务器的lib/ 目录中。
web.xml 以以下行开头:
<web-app 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">
【问题讨论】:
-
这是您的标签文件的完整来源吗?在我看来更像是一个 jsp 片段/包含文件。
-
这不是标签的来源:它是 Tomcat 在输出中呈现的实际片段。