【问题标题】:How can we pass list object from jsp to struts2 action?我们如何将列表对象从 jsp 传递给 struts2 动作?
【发布时间】:2014-07-12 07:37:39
【问题描述】:

我在 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 类?注意:这里我没有使用任何 List Object 字段作为字段中的命名参数。

【问题讨论】:

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

标签: java jsp struts2


【解决方案1】:

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

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

【讨论】:

    【解决方案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>
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-18
        • 1970-01-01
        • 1970-01-01
        • 2020-05-09
        • 1970-01-01
        • 1970-01-01
        • 2014-07-19
        相关资源
        最近更新 更多