如何在Struts 2中提交多个Line Item?

2023-12-29

我确实有一个购买请求表单,它动态创建行ItemName, quantity, specification, unit of measurement.

我确实有一个名为“添加项目”的按钮,它可以动态创建新行。

当我提交此表单时,如何将其放入 Struts2 中的 Action 类中。

JSP:

    <table id="itemDetails" width="100%">
    <tr  width="100%" cellpadding="0" cellspacing="0" border="1" >
    <th ><center>+</center></th>
    <th >Item</th>
    <th >Specification</th>
    <th >Quantity</th>
    <th >Unit Of Measurement</th>
    <th >Operations</th>
    </tr>

    <s:iterator value="id" status="ctr" >
     <tr>
      <td  width="5%"><input type="checkbox"  name="rdel"  ><br><br></td>
      <td  width="30%" ><input  type="text" name="id[%{#ctr.index}].itemname" /></td>
      <td  width="30%"><input type="text" name="id[%{#ctr.index}].specification"  ></td>                      
      <td  width="20%"><input type="text" name="id[%{#ctr.index}].quantity" ></td>
      <td  width="5%"><input type="text"  name="id[%{#ctr.index}].uom" ></td>
      <td  width="10%"><a href="#" >Delete</a></td>
     </tr>
    </s:iterator>
    </table>

用于动态行创建的 Javascript:

<SCRIPT language="javascript">
function addRow(itemDetails) {

    var table = document.getElementById(itemDetails);

    var rowCount = table.rows.length;

    var row = table.insertRow(rowCount);
    var counts=rowCount-1;


    var cell1 = row.insertCell(0);
    var check = document.createElement("input");
    check.type = "checkbox";
    check.name="rdel";
    cell1.appendChild(check);

    var cell2 = row.insertCell(1);
    var item = document.createElement("input");
    item.type = "text";
    item.name="id.item";
    cell2.appendChild(item);

    var cell3 = row.insertCell(2);
    var specification = document.createElement("input");
    specification.type = "text";
    specification.name="id.specification";
    cell3.appendChild(specification);

    var cell4 = row.insertCell(3);
    var quantity = document.createElement("input");
    quantity.type = "text";
    quantity.name="id.quantity";
    cell4.appendChild(quantity);

    var cell5 = row.insertCell(4);
    var uom = document.createElement("input");
    uom.type = "text";
    uom.name="id.uom";
    cell5.appendChild(uom);

    var cell6 = row.insertCell(5);
    var operations = document.createElement("a");
    operations.setAttribute("href","#");
    operations.innerText="Delete";
    cell6.appendChild(operations);


}

</SCRIPT>

Action类方法:

 private List<ItemDetails> id;
 public List<ItemDetails> getId(){

    return this.id;
 }

 public void setId(List<ItemDetails> id) {
    this.id = id;
 }

 public String savePurchaseRequest(){
  try{

      setId(getId());   

   for(ItemDetails itemdetails:id ) {
       System.out.println( itemdetails.getItemname() + ":" + itemdetails.getSpecification() +":"+ itemdetails.getQuantity()+ ":"+ itemdetails.getUom() );
    }

    }catch(Exception e){
      System.out.println("Exception:"+e);
    }

  return SUCCESS;
 }

and ItemDetails class:

public class ItemDetails implements java.io.Serializable {

private String itemname;

private String specification;

private String quantity;

private String uom;



public ItemDetails() {

}



public ItemDetails(String itemname, String specification, String quantity, String uom) {

this.itemname = itemname;

this.specification = specification;

this.quantity = quantity;

this.uom = uom;

}




}



public String getItemname() {

return this.itemname;

}



public void setItemname(String itemname) {

this.itemname = itemname;

}



public String getSpecification() {

return this.specification;

}



public void setSpecification(String specification) {

this.specification = specification;

}



public String getQuantity() {

return this.quantity;

}



public void setQuantity(String quantity) {

this.quantity = quantity;

}



public String getUom() {

return this.uom;

}



public void setUom(String uom) {

this.uom = uom;

}




}

你就快到了。

只需更改您分配的 Javascript 部分name属性,包括与迭代中完全相同的索引:

item.name="id.item";
specification.name="id.specification";
// ecc...

必须成为

item.name="id["+counts+"].itemname";
specification.name="id["+counts+"].specification";

你会很好的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Struts 2中提交多个Line Item? 的相关文章

  • html 表格单元格的条件格式

    是否有现成的解决方案可以对 HTML 表格进行条件格式设置 通过条件格式 我更感兴趣的是根据该列或其他列 在同一个表中 的值 数字 将不同的颜色作为单元格背景 类似于我们在 Excel 条件格式 gt 色阶 gt 红黄绿中的内容 我想在通过
  • 将html表格保存到excel中[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我必须编写一个程序 定期读取网页并将
  • 如果结果类型为 json,则 Struts2 Action 被调用两次

    我有一个包含 4 个操作方法的 Action 类 所有四个操作操作方法都使用 json 结果 通过日志记录和调试 我已经验证如果我调用操作方法1 操作方法2和3也会被调用 但不是4 最后再次调用action方法1 生成json结果 如果我将
  • 如何比较 Struts 2 中 url 请求参数中的单个字符

    我正在读取具有单个字符的 url 参数 它将是Y or N 我必须写一个条件来检查它是否Y or N并做相应的事情 这是我写的 但似乎不起作用 总是转到其他地方 网址是
  • 使用 JS 合并具有相同值的相邻 HTML 表格单元格

    我已经为此苦苦挣扎了一段时间 我有一个根据一些 JSON 数据自动生成的表 该数据可能会有所不同 我想合并第一列中具有相同值的相邻单元格 例如此表中的 鱼 和 鸟 table tr td fish td td salmon td tr tr
  • 使用 JQuery 更改表附加行中某些单元格的背景颜色

    我正在向表中追加一行 如何更改该行中一组单元格的背景颜色 假设列有 25 列 从 17 到 22 的列需要更改背景颜色 这是我到目前为止所尝试的 table1 append row1 row1 children td not td eq 0
  • 在返回响应之前获取 servlet 请求的状态

    晚上好 我正在编写一个 Java Servlet Struts 2 Tomcat JSP 等 它能够进行一些相当复杂的模拟 这些可能最多需要 2 分钟才能完成 并将返回结果图表 计算模拟完成的百分比很简单 因为该过程是通过重复相同的计算数千
  • Struts 2 Action 标签,检索属性

    如果我有一个典型的设置 其中包含转发到 JSP 的操作 我会像这样请求我的属性
  • 在 Struts 2 中使用单个文件标签上传多个文件

    我想使用单个 Struts 2 文件标签上传多个文件 就像在 Gmail 中一样 我们使用 CTRL 键来选择多个文件来附加多个文件 我知道如何上传多个文件 但我想使用单个文件标签 我在一个小画廊应用程序中上传多个文件 如果您的操作已设置为
  • 未找到 GroovyEvaluator

    我会尝试在以下位置制作我的 PIE 3D 报告iReport 在我的 struts xml 中 我用这个来调用我的报告
  • Angular4 Material md-table 列宽度像普通表一样自动调整大小

    我在 Angular 4 应用程序中使用 md table 因为我将 Material 用于 UI 格式的其他部分 当我使用基本上没有 CSS 的常规表格时 列会自动设置格式以适合最宽的 td 元素 使用 md table 除了太宽的单元格
  • 当td内容太宽时,表格溢出父div

    我准备了一个 JSFiddle 来解释 向你展示我的问题 http jsfiddle net nz96C http jsfiddle net nz96C 乍一看还不错 但是当我添加一些文本时 firsttd一旦使用 tds 整个宽度 整个表
  • Chrome 将 0 宽度的表格单元格显示为 1px

    在 Firefox 中 我相信是正确的 由于 width 0 看不到红色 div 但在 Chrome 中 它显示为具有 1px 宽度 这似乎是最新版本 Chrome 的问题 这把小提琴 http jsfiddle net bFZf4 显示问
  • 最新版本 6.* Struts2 支持 Tomcat 10 吗? [复制]

    这个问题在这里已经有答案了 最新版本 6 Struts2 支持 Tomcat 10 吗 异常启动过滤器 struts2 java lang ClassCastException class org apache struts2 dispat
  • 如果表单提交被取消,是否有一个 jQuery 事件可以监控?

    我在表单提交上有一些 Javascript 代码 这些代码使数据表变灰并覆盖加载图像以指示正在重新加载 问题是 如果用户取消页面重新加载 表格将保持灰色 我想注意页面提交是否被取消 如果是 则淡入表格并删除覆盖 我的问题是 当取消加载新页面
  • 当页面大小调整时,使用 jQuery 将列移动到下一个

    目前我在网站上列出这样的信息 TD1 TD2 TD3 TD4TD5 TD6 TD7 TD8 当调整浏览器大小时 第四个和第八个 td 现在被切断 我希望发生这种情况 TD1 TD2 TD3TD4 TD5 TD6 td7 td8 最终 如果你
  • 操作错误不会显示在 JSP 上

    我尝试在 Action 类中添加操作错误并将其打印在 JSP 页面上 当发生异常时 它将进入 catch 块并在控制台中打印 插入异常时出错 请联系管理员 在 catch 块中 我添加了它addActionError 我尝试在jsp页面中打
  • Jquery一键提交多个同名表单

    我有动态创建的循环表单 我需要一键提交所有表单 我正在遵循下面的代码 你能建议我怎么做吗 谢谢
  • javax.el.PropertyNotFoundException:在类型上找不到属性“名称”[重复]

    这个问题在这里已经有答案了 我有一个代码如下 FriendsList new ArrayList ResultSet rs st executeQuery Select while rs next Member member new Mem
  • 无法使用 Struts 2 重定向 JSP 文件并显示值

    我创建了一个简单的程序 使用文本字段获取用户的名字和姓氏 但问题是 当我单击提交按钮时 我无法将其重定向到另一个显示用户名字和姓氏的 jsp 文件 这是我的HelloAction class package com novamsc trai

随机推荐

  • jQuery 切换显示/隐藏多个 DIV ID

    CODE document ready function toggle hide show click function toggle toggle slow this attr src images checkmark2 jpg func
  • 特定键上的部分<>

    我有一个描述 mongodb 数据库数据的打字稿界面 例如 interface Foo id string name string fish id string name string 我有一种方法可以构建要插入数据库的数据 例如 func
  • 如何在 Swift 中构造多个 HTTP 请求?

    我对 Swift 和编程都很陌生 我非常热衷于以正确的方式学习 因此 任何额外的提示或评论总是值得赞赏的 我正在向 api 发出 HTTP 请求 效果很好 问题是每个请求最多只能有 100 个结果 我可以设置一个可选的偏移量和限制 如果我给
  • 如何在 MATLAB 中去除图像中的高斯噪声?

    我正在尝试从图像中去除高斯噪声 我自己使用以下方法添加了噪音 nImg imnoise img gaussian 0 0 01 I now need to remove the noise using my own filter or at
  • 按 SPARQL 中的日期范围过滤

    我正在使用 Jena 的 SPARQL 引擎 并尝试编写一个查询来过滤日期范围 因为我需要在固定日期之后查找属性的值 我的日期属性采用以下格式 Fri May 23 10 20 13 IST 2014 如何编写 SPARQL 查询来获取日期
  • 为什么要使用 getter 和 setter 方法来设置类属性? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么要使用 getter 和 setter https stackoverflow com questions 1568091 why use getters and setters 在 C ASP
  • Protractor - 如何为不同的测试重用相同的规范文件

    在我的量角器中conf js文件 我想多次重复使用相同的规范文件 然而 这似乎不可能 一些背景 我们从 JSON 文件中读取测试用例 启动报告 然后测试网格结果和各种 DOM 元素 所有报告都具有相同的格式 主要差异在于报告标题 数据列 实
  • Swift 中如何检查字符串是否包含字母? [复制]

    这个问题在这里已经有答案了 我正在尝试检查特定字符串是否包含字母 到目前为止我遇到过NSCharacterSet letterCharacterSet 作为一组字母 但我无法检查该组中的字符是否在给定的字符串中 当我使用此代码时 我收到一条
  • 无法访问 Blazor Server 3.0 中已处置的对象

    我有一个 Blazor 页面 其中包含以下表单提交按钮
  • 如何在詹金斯管道中抛出异常?

    我已经使用 try catch 块处理了 Jenkins 管道步骤 我想在某些情况下手动抛出异常 但它显示以下错误 org jenkinsci plugins scriptsecurity sandbox RejectedAccessExc
  • Silverlight 是否比 JavaScript 具有性能优势?

    在最近一次有关 Silverlight 的讨论中 提到了速度的优势 Silverlight 的论点是 它在浏览器中的性能比 Javascript 更好 因为它是编译 和托管 代码 然后有人指出 这一优势仅适用于 IE 因为与 Chrome
  • 如何编写代码来为android中的数组创建共享首选项?

    我正在工作android 我想在我的代码中进行共享首选项 但我不知道如何对数组进行共享首选项以及如何在另一个类中使用该共享首选项的值 这是我在一个 for 循环中的数组 urls i sitesList getWebsite get i 我
  • 使用 Week No 在 MySql 中获取一周的第一天

    如何获取周数可用的给定周的第一天 例如 当我写这篇文章时 我们位于WEEK 29 我想编写一个将返回的 MySQL 查询7 月 18 日星期日使用这个第 29 周作为唯一可用的参数 这是根据当前日期获取一周第一天和一周最后一天的准确方法 a
  • Chrome 扩展程序 .pem 文件有什么用?

    当我创建第一个 Google Chrome 扩展程序时 我按照迷宫般的说明进行操作 最终成功启动了扩展程序 我还成为了一个神秘的 pem 文件的新所有者 我被警告将其放置在安全的地方并且永远不要丢失 我认真地将文件放在安全的地方 并可能在处
  • Android 全局变量在 Service 中不起作用

    我很困惑为什么我无法从我的服务访问我的全局变量 我可以从其他活动中访问它们就好了 全局变量类 public class Global extends Application private static final String TAG G
  • C# MS Exchange 将电子邮件移动到文件夹

    Added 感谢用户 grapkulec 我正在使用 using Microsoft Exchange WebServices Data 我正在尝试将电子邮件移动到我已在 Outlook 中创建的文件夹 使用 MS Exchange 到目前
  • 使用节点的字符串表示形式访问 stdClass 对象上的嵌套属性

    给定一个保存该字符串的变量 property parent gt requestdata gt inputs gt firstname 还有一个对象 obj gt parent gt requestdata gt inputs gt fir
  • 获取忽略 Null 或零值的 AVG

    我怎样才能得到AVG忽略一列NULL和零值 我有三列来获取它们的平均值 我尝试使用以下脚本 SELECT distinct AVG cast ISNULL a SecurityW 0 as bigint as Average1 AVG ca
  • 修复 AngularJS 错误:提供程序必须从 $get 工厂方法返回值

    当我使用下面的代码时 出现以下错误 提供者 登录 必须从 get 工厂方法返回一个值 我已经查看了 stackoverflow 帖子here https stackoverflow com questions 27738903 provid
  • 如何在Struts 2中提交多个Line Item?

    我确实有一个购买请求表单 它动态创建行ItemName quantity specification unit of measurement 我确实有一个名为 添加项目 的按钮 它可以动态创建新行 当我提交此表单时 如何将其放入 Strut