Struts2当索引为变量时访问列表的特定索引

问题描述 投票:3回答:2

当索引是变量时,我在访问列表的特定元素时遇到一些麻烦。

当索引只是一个数字时,我完全不会显示我要查找的内容。

<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语句?

java jsp struts2 ognl
2个回答
5
投票

您应该在此示例中设置其格式:

<s:set var="userIndex" value="%{@java.lang.Integer@valueOf(#parameters.index)}" />
<s:property value="%{#session.userList[#userIndex].email}" />

如果使用struts标记,最好使用OGNL代替EL来求值表达式。强制OGNL评估整个表达式而不是一部分。

需要将变量的值转换为整数类型。用于名称的字符串类型。


0
投票

您也可以使用

<s:set var="index" value="%{@java.lang.Integer@valueOf(#row.index)}" />

这是为索引设置一个整数值

然后您可以访问列表的特定值

<s:property value="%{yourListObject.get(#index).yourField}" />
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.