当索引是变量时,我在访问列表的特定元素时遇到了一些麻烦。
当索引只是一个数字时,我完全没有问题显示我正在寻找的内容。
<s:property value="#session.userList[1].email" />
效果很好,并显示在UserList的元素中找到的电子邮件
但是,当我将索引更改为变量时,我很难找到编写ognl语句的正确方法。我已经尝试了%#的所有组合,我可以想到没有运气。
<s:set var="userIndex" >${param.index}</s:set>
<s:property value="#session.userList[#userIndex].email" />
我应该如何格式化我的ognl语句?
答案 0 :(得分:4)
你应该像在这个例子中那样格式化它:
<s:set var="userIndex" value="%{@java.lang.Integer@valueOf(#parameters.index)}" />
<s:property value="%{#session.userList[#userIndex].email}" />
如果您正在使用struts标签,请更好地使用OGNL来计算表达式而不是EL。强迫OGNL评估整个表达而不是其中一部分。
需要将变量的值转换为整数类型。用于名称的字符串类型。
答案 1 :(得分:0)
您还可以使用
<s:set var="index" value="%{@java.lang.Integer@valueOf(#row.index)}" />
这是设置索引的整数值
然后您可以访问列表的特定值
<s:property value="%{yourListObject.get(#index).yourField}" />