我有一个User类,其中包含一个String用户名.我有一个用户列表,我试图在表中使用
<s:iterator value="users" id="list">
<tr>
<td><s:property value="#list.username" /></td>
<td></td>
<td></td>
<td></td>
</tr>
</s:iterator>
Run Code Online (Sandbox Code Playgroud)
行正在显示正确的次数,因此它正在迭代我的列表.但是,我不知道如何访问username属性来显示它.显然我上面所说的不正确......有什么想法吗?
leo*_*loy 18
首先,在Struts2 2.1.x id中不推荐使用该属性,var应该使用(ref)
我认为#在那里被误用了.此外,"列表"似乎是每次迭代中要分配的内容的坏名称...我认为"用户"更合适.
IIRC,语法是
<s:iterator value="users" var="user">
... <s:property value="#user.username" />
</s:iterator>
Run Code Online (Sandbox Code Playgroud)
此外,您不需要在迭代器中为这样一个简单的大小写分配当前项.这应该也有效:
<s:iterator value="users">
... <s:property value="username" />
</s:iterator>
Run Code Online (Sandbox Code Playgroud)
您也可以尝试这样做:
<s:iterator value="users">
... <s:property /> <!-- this outputs the full object, may be useful for debugging -->
</s:iterator>
Run Code Online (Sandbox Code Playgroud)
更新:我纠正了关于#的一点,没关系.