如何迭代对象列表?
我有一个 User 类,其中有一个字符串用户名。我有一个用户列表,我尝试使用
<s:iterator value="users" id="list">
<tr>
<td><s:property value="#list.username" /></td>
<td></td>
<td></td>
<td></td>
</tr>
</s:iterator>
这些行显示在表中正确的次数,因此它正确地迭代我的列表。但是,我不知道如何访问用户名属性来显示它。显然我上面的内容是不正确的......有什么想法吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
首先,在 Struts2 2.1.x 中,
id
属性已被弃用,应使用var
代替(ref)我认为 # 在那里被误用了。此外,对于要分配的内容来说,“list”似乎是一个不好的名字在每次迭代中......我认为“用户”更合适。IIRC,语法为
此外,对于这样一个简单的情况,您不需要分配迭代器中的当前项。这也应该有效:
您也可能想尝试一下:
更新:我更正了有关 # 的位,没关系。
First, in Struts2 2.1.x the
id
attribute is deprecated,var
should be used instead (ref)I think the # is misused there.Besides, "list" seems a bad name for what is to be assigned in each iteration... I think "user" is more appropiate.IIRC, the syntax is
Further, you don't need to assign the current item in the iterator for such a simple case. THis should also work:
Also you might want to try this:
UPDATE: I corrected the bit about the #, it was ok.
你可以这样做
观察那里不需要 #list 。
另一种方法是
id 的替代,将其作为 var。
我们没有指定 var 的范围,这个新的 user 引用存在于
默认的“动作”范围——ActionContext。尽你所能
看,然后我们用 # 运算符引用它。
You can do like this
Observe that no need of #list there.
The other way is
insetead of id give it as var.Since
we don’t specify a scope for var, this new user reference exists in
the default “action” scope—the ActionContext. As you can
see, we then reference it with the # operator.
您可以将 JSTL 与 Struts 一起使用。它的核心库中有一个
标记,可让您轻松地迭代列表或任何其他集合。You can use JSTL with Struts. It has a
<c:forEach>
tag in its core library that will allow you to iterate through a list or any other collection easily.检查此以获取更多此类示例
Check this for more such examples
Struts 1.x 像这样处理你的内部属性。
<逻辑:迭代 id="user" name="userList">
< bean:write属性=“${userName}”/>
< /逻辑:迭代>
我想按照你的例子你可以拥有。您可能不需要“#list”。再次在 value 属性中
< s:iterator value="users" id="list">
< s:property value="用户名" />
< /s:迭代器>
Struts 1.x takes care of your inner properties like this.
< logic:iterate id="user" name="userList">
< bean:write property="${userName}"/ >
< /logic:iterate>
I guess as per ur example u can have. You may not need "#list." again in the value attribute
< s:iterator value="users" id="list">
< s:property value="userName" />
< / s:iterator>