我正在将代码从Struts1迁移到Struts2,我有以下场景:
<html:radio property="case" value="A" onclick="radioClickA();"/>
<bean:message key="label.A"/>
<html:radio property="case" value="B" onclick="radioClickB();"/>
<bean:message key="label.B"/>
<html:radio property="case" value="C" onclick="radioClickC();"/>
<bean:message key="label.C"/>
由于在Struts2中我们必须在一个列表中添加上述三个单选按钮,如何为每个单选按钮添加本地化标签?
答案 0 :(得分:2)
假设A
,B
,C
为字符串:
@Getter private String[] cases = {"A","B","C"};
@Setter private String case;
<s:radio name = "case"
list = "cases"
listLabelKey = "%{'label.' + top}"
onclick = "radioClick(this.value);"
/>
请注意,top
关键字仅供内部使用,为和its usage might be inhibited in future versions of Struts。
然后你可以使用toString()
,不那么优雅但坚如磐石:
<s:radio name = "case"
list = "cases"
listLabelKey = "%{'label.' + toString()}"
onclick = 'radioClick(this.value);'
/>
答案 1 :(得分:1)
我用不同的方式写了它并且有效。
<s:radio theme = "simple"
name = "case"
list = "#{'A':getText('label.A'), 'B':getText('label.B'), 'C':getText('label.C')}"
onclick = "radioClick();"
/>