【发布时间】:2017-10-15 12:24:23
【问题描述】:
当属性名称是变量时,我在访问对象列表的特定对象属性时遇到了一些问题。
这是一个示例,其中 users 是用户列表,userAttributeList 是包含用户属性名称的字符串列表。
<%
.......
ActionContext.getContext().put("userAttributeList", request.getAttribute("userAttributeList"));
%>
<s:iterator value="users">
<s:iterator value="%{userAttributeList}" var="userAttribute">
... <s:property value="%{#userAttribute}" />
</s:iterator>
</s:iterator>
在这种情况下,属性标签不会返回John, 20-05-1990等属性的值,而是返回username,birthDate等属性的名称> 等等。
public class UserAction extends ActionSupport {
@Override
public String execute()
throws Exception {
HttpServletRequest request = ServletActionContext.getRequest();
ArrayList userAttributeList= new ArrayList();
// some logic implementation and populate the `userAttributeList`(username, birthDate, password etc)
request.setAttribute(userAttributeList, userAttributeList);
return SUCCESS;
}
}
userAttributeList ArrayList 包含用户的属性名称。此 ArrayList 用于简化实现并为此创建动态解决方案:
<s:iterator value="users">
<s:property value="%{username}" />
<s:property value="%{birthDate}" />
<s:property value="%{password}" />
....
</s:iterator>
【问题讨论】:
-
贴出你填写的代码
userAttributeList -
@Roman C 我编辑了我的帖子