Java - 使用struts2 </object []>在jsp中显示列表<object []>

时间:2014-03-16 01:11:20

标签: java hibernate jsp struts2 ognl

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>

但它不起作用。你有好主意吗 ?

谢谢。

1 个答案:

答案 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>