【问题标题】:struts2 and Jquerystruts2 和 Jquery
【发布时间】:2017-04-24 23:30:07
【问题描述】:

我正在使用 Jquery 在 JSP 表中动态添加表中的行,并希望在 Struts2 操作列表中发送该表数据(例如)

下面是动态添加行的代码,如下链接:

how-to-add-remove-table-rows-dynamically-using-jquery

我想将此表数据发送到员工对象列表中的 Struts 2 Action 让我们说:

public class MyAction extends BaseAction {

   private List<Emp> emplList ;

   // Getters + Setters of emplList  

我尝试使用s:iterator,但它不起作用,emplList.sizeAction 中为 0(零)

有人可以建议我或提供一些示例代码

【问题讨论】:

    标签: jquery struts2


    【解决方案1】:

    鉴于Emp 具有带有setter 和getter 的namemail 属性,可能有两种方法可以做到这一点:

    1. 您修改您的 jQuery javascript,以便添加行的最终结果将变为:
    <input type="text" name="emplList[0].name"   value="Name1"/>  
    <input type="text" name="emplList[0].email"  value="email1"/>
    <input type="text" name="emplList[1].name"   value="Name2"/>
    <input type="text" name="emplList[1].email"  value="Email2"/> 
    

    然后,在按下提交后,Action 中的Emp 中的List 应该被填充。

    此解决方案的缺点是您必须在将数据发送到服务器之前提供正确的索引(如果您在构建数据表的过程中删除行可能会很棘手)

    1. 为避免索引麻烦,您可以在 Action 中声明 2 个列表

      private List<String> names; private List<String> emails;

      在这种情况下,您的 javascript 的最终结果将是

    <input name="names" value="name1" />
    <input name="emails" value="email1" />
    <input name="names" value="name2" />
    <input name="emails" value="email2" />
    

    提交后,服务器端的两个新列表(namesemails)将被填充,您可以从中创建您的愿望 ListEmp 类似

    emplList.add(new Emp(names.get(i),emails.get(i))); 对应每个i

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多