2010-05-02 112 views
10

我有一个用户类,它有一个字符串用户名。我有我尝试使用你如何迭代对象列表?

      <s:iterator value="users" id="list"> 
           <tr> 
            <td><s:property value="#list.username" /></td> 
            <td></td> 
            <td></td> 
            <td></td> 
           </tr> 
         </s:iterator> 

该行正在显示的时间正确的号码在表格中显示的用户的列表,所以它的正确遍历,我的名单。但是,我不知道如何访问用户名属性来显示它。很明显,我上面有什么不正确的...任何想法?

回答

2

您可以使用带有Struts的JSTL。它的核心库中有一个<c:forEach>标签,可以让您轻松地遍历列表或任何其他集合。

0

Struts 1.x照顾你这样的内在属性。

<逻辑:迭代ID = “用户” 名称= “用户列表”> <豆:写属性= “$ {USERNAME}”/> < /逻辑:迭代>

我想为每你可以拥有的例子。你可能不需要“#list”。再次在value属性 < S:迭代器值= “用户” ID = “列表”> < S:属性值= “userName的”/> < /秒:迭代>

16

首先,在Struts2 2.1。 x id属性已弃用,应改用varref

我认为#在这里被滥用。此外,“列表”似乎是每个迭代中分配内容的坏名字......我认为“用户”更合适。

IIRC,语法是

<s:iterator value="users" var="user"> 
    ... <s:property value="#user.username" /> 
</s:iterator> 

而且,你不需要指定迭代器中当前项目这样一个简单的例子。这也应该工作:

<s:iterator value="users"> 
    ... <s:property value="username" /> 
</s:iterator> 

而且你可能想试试这个:

<s:iterator value="users"> 
     ... <s:property />  <!-- this outputs the full object, may be useful for debugging --> 
    </s:iterator> 

更新:我纠正了我对#位,这是确定的。

+0

谢谢您的答复。使用你的第二个建议,没有什么是显示输出。我不知道为什么......当我做最后一个建议时,表中的每一行看起来基本上都是[email protected],但@之后的每个十六进制值都不相同。 – Kevin 2010-05-02 22:46:35

+0

另外有趣的是,我的User类中有一个名为“id”的int属性,如果我把“id”放在上面有“username”的地方,就可以工作。没有其他的字符串属性工作,但int属性呢... – Kevin 2010-05-02 23:08:10

+0

你是否package.entity.User类有一个明智的toString()方法? 并拥有一个getUsername()方法? – leonbloy 2010-05-02 23:17:52

3

你可以这样做

<s:iterator value="users" > 
<tr> 
    <td><s:property value="username" /></td> 
    <td></td> 
    <td></td> 
    <td></td> 
</tr> 

观察到,没有必要#list那里。

另一种方式是

insetead的 ID
<s:iterator value="users" var="user"> 
<tr> 
    <td><s:property value="#user.username" /></td> 
    <td></td> 
    <td></td> 
    <td></td> 
</tr> 

把它作为变种。由于 我们没有指定var的范围,所以这个新的用户引用存在于 默认的“action”范围 - ActionContext中。正如你可以看到,我们然后用#操作符引用它。

0
<s:iterator value="users" var="eachUser"> 
<div> 
<s:property value="#eachUser.username"> 
</div> 
</s:iterator> 

检查this更多这样的例子