在我的jsp中,我在迭代器中有一个带有“text”属性的对象列表中的标签:
<s:iterator value="survey.questions">
<s:label for="d_%{id}" value="%{text}"></s:label>
.....
<s:iterator/>
现在,既然我想本地化标签内的文本,我为我支持的每种语言添加了一个属性(textEN,textIT等等),所以我希望从本地读取属性名称我之前在页面中设置的变量,例如:
<s:set var="loc" value="textEN" />
我无法做到这一点,我尝试使用以下表达式
<s:label for="d_%{id}" value="%{#loc}"></s:label>
但它什么都不打印。
答案 0 :(得分:1)
解决。
我必须在迭代器中添加一个id
<s:iterator value="survey.questions" id="question">
然后使用以下语法直接访问该属性:
<s:label for="d_%{id}" value="%{#question[#loc]}"/>
谢谢大家。
答案 1 :(得分:0)
您必须将字符串放在单引号中以阻止struts将此文本作为变量名称:
<s:set var="loc" value="'textEN'"/>
现在您的%{#loc}
应该有效。