在尝试使用自定义 JSP 标记库时,我在 JSP 中定义了一个变量,我希望在将其传递给标记库之前对其进行评估。但是,我似乎无法让它工作。这是我的 JSP 的简化版本:
<% int index = 8; %>
<foo:myTag myAttribute="something_<%= index %>"/>
我的doStartTag()
方法TagHandler
使用pageContext的输出流根据输入的属性进行写入:
public int doStartTag() {
...
out.println("Foo: " + this.myAttribute);
}
但是,我在最终标记中看到的输出是:
Foo: something_<%= index %>
而不是我想要的:
Foo: something_8
我对该属性的标签库定义是:
<attribute>
<name>myAttribute</name>
<required>true</required>
</attribute>
我曾尝试使用 和 配置属性rtexprvalue
,true
但false
均未成功。有没有办法可以配置属性,以便在发送到处理程序之前对其进行评估?还是我完全错了?
我对 JSP 标签比较陌生,所以我对解决这个问题的替代方案持开放态度。另外,我意识到在 JSP 中使用 scriptlet 是不受欢迎的,但我在这里使用一些遗留代码,所以我现在有点坚持。
编辑:
我也试过:
<foo:myTag myAttribute="something_${index}"/>
这也不起作用 - 它只是输出something_${index}
。