一尘不染

Java-显示清单 在与struts2的jsp中

jsp

我对Struts2有问题。我创建了一个List<Object[]> myList,并用查询结果填充了它。

我的查询从两个表中获取字段,因此无法将结果放在bean实例上(我想)。我想myList通过迭代器在带有Struts2的JSP上显示,但是我无法获取列表的值。

在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>

但这不起作用。你有想法吗 ?

谢谢。


阅读 217

收藏
2020-06-10

共1个答案

一尘不染

您列出与iterator标记一起使用的元素可能包含Object[]。尚不清楚是什么类型,myList或者您为操作bean使用的是DAO,这更糟。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>
2020-06-10