0

我有两个自定义标签 mbar.tag 和 mitem.tag 使用如下:- test.jsp

<html>
<body>
<% String sArg = request.getParameter("someparam"); %>
<mytags:mbar>
    <mytags:mitem title="images/<%= sArg %>-first.png"/>
    <mytags:mitem title="images/<%= sArg %>-second.png"/>
</mytags:mbar>
</body>
</html>

mbar 标记求值为元素 mitem 标记求值为元素,其值为title作为元素的主体 它们在 tld 文件中声明

test.jsp 的输出是

<html>
<body>
<% String sArg = request.getParameter("someparam"); %>
<div>
    <div>images/**<%= sArg %>**-first.png</div>
    <div>images/**<%= sArg %>**-second.png</div>
</div>
</body>
</html>

结果逐字包含脚本,而我需要替换sArg的值。屏幕上不会返回任何错误。看到j​​sp支持jsp scriplets,我确信这与自定义标签有关。我错过了什么?

4

1 回答 1

0

不要使用小脚本。绝不。已经引入了自定义标记和 JSP EL,以便能够避免 scriptlet。

使用 JSP EL:

<mytags:mitem title="images/${param.someparam}-first.png"/>

并确保您的标签的标题标签被声明为接受运行时表达式,使用

<rtexprvalue>true</rtexprvalue>

在 TLD 文件的属性声明中。

于 2013-10-27T06:52:28.587 回答