我对Struts2有问题。我创建了一个List<Object[]> myList,并用查询结果填充了它。
List<Object[]> myList
我的查询从两个表中获取字段,因此无法将结果放在bean实例上(我想)。我想myList通过迭代器在带有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>
但这不起作用。你有想法吗 ?
谢谢。
您列出与iterator标记一起使用的元素可能包含Object[]。尚不清楚是什么类型,myList或者您为操作bean使用的是DAO,这更糟。Struts可以使用OGNL表示法显示这些对象,但如果尝试提交值,则将无法填充该列表。要显示Object[]您的值,只需通过列索引访问它们。
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>