java - JSP 2 和 Servlet 2.4 破坏了我的自定义标签

标签 java jsp servlets jsp-tags

我们最近在一个项目中切换到 Servlet 2.4 和 JSP 2,并且我们的自定义标记不再起作用。 我们有这样的标签:

<myTags:someTag value="${x}" />

一旦进入标签,我们就评估 x bean 并从那里开始。现在评估直接在 JSP 中进行,我们得到一个为 value 属性设置的字符串(显然是 x.toString())。

标签不多,我可以在几天内调整它们,但我该怎么做呢?我在网上找不到任何内容(或者也许我没有在应该查找的地方查找)。

如何将 x bean 传递到我的标记并在那里对其进行评估,并且不允许在 JSP 中对其进行评估?

附注我不想停用 EL 引擎

谢谢!

最佳答案

如果您重新声明web.xml作为Servlet 2.4如下

<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">

tld文件为 JSP 2.0 taglib,如下所示:

<taglib 
    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/web-jsptaglibrary_2_0.xsd" 
    version="2.0"> 

然后您可以添加 <rtexprvalue>true</rtexprvalue> TLD 文件中需要 EL 值的标记属性条目。例如

<attribute>
    <name>value</name>
    <rtexprvalue>true</rtexprvalue>
</attribute>

默认为false .

关于java - JSP 2 和 Servlet 2.4 破坏了我的自定义标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3754429/

相关文章:

java - 如何使用Spring编写注解触发的方法拦截器?

java - 如何比较 JSON 文档并返回与 Jackson 或 Gson 的差异?

java - 有点混淆 SQL 和 Tomcat

java - 为什么从 super 接口(interface)到子接口(interface)的转换有效?

java - 从 Java servlet 下载文件给出 null

servlets - 为什么 Java servlet 不能每次都获取 Paypal IPN 消息?

java - java如何实现上下滚动?

java - MockMVC 和 Mockito 返回状态预期 <200> 但为 <415>

java - JSP过滤非法url直接访问

java - 嵌套 EL 函数