Java 如何将列表对象从jsp传递到struts2操作?

Java 如何将列表对象从jsp传递到struts2操作?,java,jsp,struts2,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 n

我在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类。我希望此列表对象用于其他处理


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

不会传递empList对象。Struts2将把所选表单值传递给action类


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

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

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

拉维给出的解决方案是正确的,但可以改进 不需要隐藏值 您可以像在“隐藏”中提供的那样提供字段名称

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

但不确定为什么它是低质量的,因为list是java.util包中的一个集合。HTML是如何意识到这一点的?从网站上,我们可以发送表单标签中的所有内容。然后作为post或get变量发送,这些变量仅为字符串。这只是一个基本概念。您可以从html发送字符串数组而不是集合列表。我自己做了一些调查并解决了这个问题。对于每次迭代,我都会将数据传递到数组列表,并且工作正常。我花了很多时间在这个问题上,这个修复可能对其他人有帮助。根据我的理解,这不是一个低质量的修复。有时要求不同,但并不总是相同你做得很好。。。很抱歉将您的问题评为低质量问题+对你的回答…你今天给了我一个教训。。。