我们如何将列表对象从jsp传递给struts2动作?

时间:2014-07-12 07:37:40

标签: java jsp struts2

我在Struts2中遇到一个问题,请找到以下信息。

Java代码:

public class Employ{
  int empNo;
  String empName;
}

class EmployAction{
  List<Employ> empList=new ArrayList<Employ>();
  int eno;
  String ename;
}

<s:iterator value="empList">
<s:textfield name="eno" value="%{empNo}"/>
<s:textfield name="eName" value="%{empName}"/>
</s:iterator>

首先,我正在进行搜索操作并获取所有雇用列表并在JSP中进行迭代。

每当我提交表单时,此empList对象都不会传递给Action类。我希望这个List Object用于其他一些处理。

如何将此列表对象传递给Action类?注意:这里我没有使用任何列表对象字段作为字段中的命名参数。

3 个答案:

答案 0 :(得分:4)

经过长时间的调查找到解决方案并解决了这个问题。 此解决方案可能对其他任何人都有帮助。

<s:iterator value="empList" status="emp">
    <s:textfield name="eno" value="%{empNo}"/>
    <s:textfield name="eName" value="%{empName}"/>
    <s:hidden name="empList[%{#emp.index}].eno" value=%{empNo}/>
    <s:hidden name="empList[%{#emp.index}].ename" value=%{empName}/>
</s:iterator>

答案 1 :(得分:2)

Ravi给出的解决方案是正确的,但可以改进 不需要隐藏的价值 你可以像隐藏的

中给出的那样给出字段的名称
<s:iterator value="empList" status="emp">
    <s:textfield name="empList[%{#emp.index}].eno" value="%{empNo}"/>
    <s:textfield name="empList[%{#emp.index}].ename" value="%{empName}"/>
</s:iterator>

答案 2 :(得分:1)

empList对象将不会被传递。 Struts2会将您选择的表单值传递给您的操作类。

如果要将该empList对象用于动作类,只需将该empList对象放入Session。您可以从动作类中的会话中检索emplist对象的值,并可以对其进行处理。