Struts2: 使用变量值作为 属性 名称
Struts2: Using a variable value as property name
在我的 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>
但它什么也不打印。
您必须将字符串放在单引号中以阻止 struts 将此文本作为变量名:
<s:set var="loc" value="'textEN'"/>
现在您的 %{#loc}
应该可以工作了。
已解决。
我必须向迭代器添加一个 id
<s:iterator value="survey.questions" id="question">
然后直接访问 属性 语法如下:
<s:label for="d_%{id}" value="%{#question[#loc]}"/>
谢谢大家
在我的 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>
但它什么也不打印。
您必须将字符串放在单引号中以阻止 struts 将此文本作为变量名:
<s:set var="loc" value="'textEN'"/>
现在您的 %{#loc}
应该可以工作了。
已解决。
我必须向迭代器添加一个 id
<s:iterator value="survey.questions" id="question">
然后直接访问 属性 语法如下:
<s:label for="d_%{id}" value="%{#question[#loc]}"/>
谢谢大家