如何在JSP中显示操作数据?

时间:2012-02-08 19:11:09

标签: java collections struts2 struts

我在JSP中使用<s:iterator>标记来显示List个人对象。

我尝试在动作类中创建ListOfPersons作为List,以及getter和setter。我仍然无法显示数据 - 我该怎么做?

<s:iterator value="ListOfpersons" status="stat">

当我尝试打印列表大小时,我得到零。

2 个答案:

答案 0 :(得分:0)

如果我理解正确,那么在JSP页面上使用OGNL表达列表时遇到问题。您应该使用YourListName[index].property格式命名字段。然后,OGNL将了解您有一个名为YourListName的列表,其index的元素具有property,其值在其输入上。

请参阅以下示例:

<table>
<s:iterator value="ListOfpersons" status="status">
<tr>
   <td><s:textfield name="ListOfpersons[%{#status.index}].firstname"/></td>
   <td><s:textfield name="ListOfpersons[%{#status.index}].lastname"/></td>
   <td><s:textfield name="ListOfpersons[%{#status.index}].age"/></td>
   <td><s:textfield name="ListOfpersons[%{#status.index}].sex"/></td>
</tr>
</s:iterator>
</table>

答案 1 :(得分:0)

简答:将信息存储在请求中并在jsp中访问它。

更长的答案:

  1. 在servlet中创建一些对象(在您的情况下,操作)。
  2. 将对象存储在某个JSP范围(HttpServletRequest.setAttribute())中。
  3. 将请求转发(发送)到JSP页面(这只是struts配置,你已经这样做了。)
  4. 在JSP页面中,引用变量(可能使用c:out标记或只在JSP页面文本中使用EL表达式)。
  5. 一些代码(struts 1.x):

    class Blah extends Action
    {
      public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
      {
        ... do stuff
        request.setAttribute("Blammy", "Blammy Value");
        ... return some ActionForward.
      }
    }
    

    在JSP中:

    <span>The value of the Blammy variable is this here thing: ${Blammy}</span>
    

    <span>The value of the Blammy variable is this here thing: <c:out value="${Blammy}"/></span>
    

    一旦掌握了基本概念,只需使用问题List设置一个请求属性,并使用JSP中的iterator标记访问它。