Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义标记开发-属性不起作用_Java_Jsp_Tags - Fatal编程技术网

Java 自定义标记开发-属性不起作用

Java 自定义标记开发-属性不起作用,java,jsp,tags,Java,Jsp,Tags,我正在尝试编写一个带有属性的自定义选项卡,但无法让标记处理程序类读取属性值。使用,我可以让objValue工作。但是当我使用${}时,objValue2不会得到评估 jsp: 您是否为JSP 2.0和表达式语言启用了web.xml?如果web.xml使用的是较旧的DTD,服务器将禁用表达式语言,以便不会扩展${foo}等表达式 尝试更新web.xml名称空间以启用JSP 2.0 <?xml version="1.0" encoding="UTF-8"?> <web-app xm

我正在尝试编写一个带有属性的自定义选项卡,但无法让标记处理程序类读取属性值。使用
,我可以让objValue工作。但是当我使用
${}
时,
objValue2
不会得到评估

jsp:


您是否为JSP 2.0和表达式语言启用了web.xml?如果web.xml使用的是较旧的DTD,服务器将禁用表达式语言,以便不会扩展${foo}等表达式

尝试更新web.xml名称空间以启用JSP 2.0

<?xml version="1.0" encoding="UTF-8"?>
<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">

 <!-- etc -->

</web-app>

如果您是在JSP1.2中编写的,那么容器不会直接解释EL表达式。JSTL标记自己处理它们。 你可以试试这个解决方案 基本上,它涉及到使用ExpressionUtil.evalNotNull方法(JSTL库的一部分)

另一件事可能会起作用,但可能会破坏其他事情:

<%@ page isELIgnored="false" %>

如果Tomcat版本能够理解EL,但通过web.xml设置被禁用,那么这将仅为此页面打开EL评估。
当然,JSTL标记中的任何EL表达式随后都会抛出异常,因为JSTL1.0标记不接受运行时表达式

谢谢。但不幸的是,我们使用的是JSP1.2,我无法控制升级到JSP2.0的IT部门:(我使用jstl,所以c:out标记及其value属性怎么可以计算${foo}?您不必升级任何东西。如果您的应用服务器支持JSP 2.0,您只需更改web.xml并重新部署即可。显然,这可能是不可能的原因(例如,这是几十个JSP中的一个)但是JSP 1.2除了在标准JSTL LIB中之外不支持EL。如果你有自己的标记,也许你可以利用它。没有部署,没有web.xml文件。我可以将JSP和类文件放入某些文件夹中。我们的应用服务器多年来已经落后了一半,我发现自己花了几周的时间编写黑客程序来实现标准practice,因为我们公司的IT部门不愿意升级我们的服务器。感谢coderanch解决方案的有效性,但是我在使用这种方法实现我最终尝试实现的目标时遇到了另一个障碍,这里有文档记录>,或者如果您正试图让自定义标记文件工作,请将
放在标记文件的顶部。
Object Value = Contract W23AG-23
Object2 Value = ${commitmentItem.source}
<?xml version="1.0" encoding="UTF-8"?>
<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">

 <!-- etc -->

</web-app>
<%@ page isELIgnored="false" %>