Struts2存在问题。我创建了一个List<Object[]> myList
并用查询结果填充它。
我的查询从两个表中获取字段,因此我无法将结果放在bean实例上(我猜)。
我想通过迭代器在带有Struts2的JSP上显示myList
,但我无法获取列表的值。
在DAO上(我使用Hibernate):
List<Object[]> myList = session.createQuery("select a.name, b.description, c.description from test a, test2 b where a.id = b.id ");
在JSP上,如果我使用此代码:
<s:iterator value="myList">
<tr>
<td><s:property/></td>
<td><s:property/></td>
</tr>
它只显示列表中的一列。
我试过这个
<s:iterator value="myList" var="unElem">
<td><s:property value="unElem.name"/></td>
<td><s:property value="%{#unElem.description}" /></td>
<td><s:property value="%{unElem.name}" /></td>
<td><s:property value="%{#unElem.description}" /></td>
</s:iterator>
但它不起作用。你有好主意吗 ?
谢谢。
答案 0 :(得分:0)
列出与iterator标记一起使用的元素可能包含Object[]
。它不清楚什么类型是myList
,或者你正在使用DAO来处理更糟糕的动作bean。 Struts可以使用OGNL表示法显示这些对象,但如果您尝试提交值,则无法填充该列表。要显示Object[]
的值,您只需要通过列索引访问它们。
<table>
<thead>
<tr>
<th>Name:</th>
<th>Description:</th>
<th>Description:</th>
</tr>
</thead>
<tbody>
<s:iterator value="myList" var="unElem">
<tr>
<td><s:property value="%{#unElem[0]}"/></td>
<td><s:property value="%{#unElem[1]}"/></td>
<td><s:property value="%{#unElem[2]}"/></td>
</tr>
</s:iterator>
</tbody>
</table>