我在我的 struts 2.0 动作类中使用 ApplicationAware。所以,我在应用程序映射中放置了一个条目
application.put("animalDTO", animalDTO);
动物DTO:
public class AnimalDTO {
private String name_N1;
private String name_N2;
private String name_N3;
private String name_N4;
// getters and setters
}
现在,在进入我的 jsp 页面之前,我正在填充每个变量中的值。
在 JSP 页面中:我正在使用迭代器来获取 N1、N2 直到 N4。现在我需要创建 s:textfield 并动态填充这些变量内容。
IE。
<s:iterator value="application.nameList" var="nameList">
<s:textfield theme="simple" value="%{application.animalDTO.name_#nameList}" />
</s:iterator>
在这里,我没有填充任何值。
如果我硬编码为->value="%{application.animalDTO.**name_N1**}"
然后所有文本字段都将填充 name_N1 的值,但这不是我需要的。我需要动态获取值。
谁能帮我解决这个OGNL
要求?提前致谢
======================
我也试过这个,我创建了所需的 ognl 格式的字符串变量,但我不知道如何将字符串作为 valuestack 的查找。这就是我所做的:
<s:iterator value="application.nameList" var="nameList">
<s:set var="varUrl" value="%{'application.animalDTO.name_' + #nameList}" />
<s:property value="varUrl" />
<s:textfield name="NAME__%{#nameList}" theme="simple" id="NAME-%{#nameList}" value="%{varUrl}" />
</s:iterator>
但相反,文本框正在获取如下值:
application.animalDTO.name_1
application.animalDTO.name_2
application.animalDTO.name_3
application.animalDTO.name_4
需要的是与这些变量对应的值。
任何想法如何将此字符串转换为对象/键以查找到 valuestack。