簡體   English   中英

我們如何將列表對象從jsp傳遞到struts2動作?

[英]How can we pass list object from jsp to struts2 action?

我在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類? 注意:在這里,我沒有使用任何列表對象字段作為字段中的命名參數。

經過長期調查,找到了解決方案並解決了此問題。 此解決方案可能對其他任何人都有幫助。

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

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>

empList對象將不會傳遞。 Struts2會將您選擇的表單值傳遞給您的操作類。

如果要將empList對象用於操作類,只需將empList對象放入Session中即可。您可以從Action類的session中檢索emplist對象的值並進行處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM