我在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类?注意:这里我没有使用任何列表对象字段作为字段中的命名参数。
答案 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对象的值,并可以对其进行处理。