Struts自定义标记中的属性中的变量

时间:2011-09-12 14:15:59

标签: struts

我正在尝试在自定义Struts标记内使用变量,如下所示 -

for(String currentMacro : (List<String>)(request.getAttribute("individualMacros"))) {
    name = currentMacro.<some-operation>

<html:mce name = "hmtl_<%= name %>" />

像这样的东西。但是&lt;%= name%&gt;不会被变量值替换。当我使用带有纯HTML标记的变量时,它可以工作。

在这种情况下,有没有办法实现这个目标?

感谢。

2 个答案:

答案 0 :(得分:1)

使用JSP EL(假设使用JSP 2.0,并将“name”放入范围)。您还可以查看TLD是否允许rtexprs。

<html:mce name="html_${name}"/>

但为什么要使用scriptlets?很少(永远?)一个很好的理由。

答案 1 :(得分:0)

由于我们正在使用自定义标记,我的猜测是在TLD文件中,对于该特定标记属性,rtexprvalue选项没有设置为true:

<attribute>
   <name>name</name>
   <rtexprvalue>true</rtexprvalue>
   .......
</attribute>

rtexprvalue指定可以在运行时动态评估属性值。

如果设置为“false”,则表示该属性具有静态值,该值在translation处评估;如果设置为“true”,则表示可以在运行时动态确定该值。默认为“false”。

如果scriptlet不起作用,则很可能意味着rtexprvalue为false。如果你没有自由改变它,那么表达式将不适用于该特定属性。