我现在面临的问题是:入库单上有多条产品要提交到后台例如:
产品名称: <input type="text" name=""> 产品型号:<input type="text" name="">
产品名称: <input type="text" name=""> 产品型号:<input type="text" name="">
产品名称: <input type="text" name=""> 产品型号:<input type="text" name="">
产品名称: <input type="text" name=""> 产品型号:<input type="text" name="">我怎么样才能实现批量提交数据,有一种办法是些JSON,这很麻烦,请问各位高手有没有更好的办法???最好用Struts2来解决
产品名称: <input type="text" name=""> 产品型号:<input type="text" name="">
产品名称: <input type="text" name=""> 产品型号:<input type="text" name="">
产品名称: <input type="text" name=""> 产品型号:<input type="text" name="">
产品名称: <input type="text" name=""> 产品型号:<input type="text" name="">我怎么样才能实现批量提交数据,有一种办法是些JSON,这很麻烦,请问各位高手有没有更好的办法???最好用Struts2来解决
解决方案 »
- hibernate从数据库中取个varchar2的字段值,结果只返回一个字符。
- 关于struts<html:radio>里嵌套struts标签问题
- 一个简单问题,想请教下大家
- JSF:关于RichFace中列表分页控件中删除操作显示的问题
- value = ""问题
- 非常棘手的字符串格式转换日期格式的问题,大多方法都试过,不行!请高手赐教!!!
- tomcat中的两个servlet怎么通信?
- 请问如何将中文写入一个txt文件
- 关于iframe子页面去父页面标签值出错问题,求高手指导
- 哪位大神可以说一下如何用java导出excel啊
- strut2的action配置result无效
- Ajax采用get方式访问servlet中文问题
后台用request.getParameterValues(参数名)来取出来
然后遍历name数组,执行插入操作。
假设产品是product(productname,productid)
你在model层中多声明几个product
product1.product2,product3 然后写好set和get方法
前台这样写:
产品名称: <input type="text" name="product1.productname"> 产品型号:<input type="text" name="product1.productid">
产品名称: <input type="text" name="product2.productname"> 产品型号:<input type="text" name="product2.productid">
产品名称: <input type="text" name="product3.productname"> 产品型号:<input type="text" name="product3.productid">
产品名称: <input type="text" name="product4.productname"> 产品型号:<input type="text" name="product4.productid">
再加一点,考虑效率,可能你需要逐笔commit提交
这种写法是有bug的,加入我用js将第一条删掉,那么就不会存在 :产品名称: <input type="text" name="product1.productname"> 产品型号:<input type="text" name="product1.productid">
了,这样product只从2开始插入了,我没有这么试过,不知道会不会报错。
这种写法是有bug的,加入我用js将第一条删掉,那么就不会存在 :产品名称: <input type="text" name="product1.productname"> 产品型号:<input type="text" name="product1.productid">
了,这样product只从2开始插入了,我没有这么试过,不知道会不会报错。
现在我再说出我的想法,供大家参考.如果上十条,上百条.我就可以先提交四个product.每四个用一个form表单.然后循环把他们提交过去,在这里可能要用ajax了.
1.<s:iterator value="careerDtoList" status="stat">
2. <tr>
3. <td>
4.
5. <input name="careerList[<s:property value={#stat.index}'/>].personId" type="text" id="projectPerform" size="17" maxlength="30"/></td>
6. <td align="left>
7.
8. <input name="careerList[<s:property value='%{#stat.index}'/>].name" type="text" id="partPeriod2" size="4" maxlength="7" ></td>
9. </tr>
10.</s:iterator>
lz可知道struts2有个强大的类型转换器converter
lz只需要将这些值转换成一个list集合即可,用自定义转换器转。写一次,以后用配置下即可
function addToTable(){
var col="<tr class=dvtr>"
+"<td class=myDvLtd2> <input id='del' readonly value='"+$('#customer_name').val()+"' type='text' name=''> </td>"
+"<td class=myDvLtd2> <input id='del' readonly value='"+$('#chipType').val()+"' type='text' name=''> </td>"
+"<td class=myDvLtd2> <input id='del' readonly value='"+$('#planSum').val()+"' type='text' name=''> </td>"
+"<td class=myDvLtd2> <input id='del' readonly value='"+$('#proType').val()+"' type='text' name=''> </td>"
+"<td class=myDvLtd2> <input id='del' readonly value='"+$('#descrip').val()+"' type='text' name=''> </td>"
+"<td > <input value='删除' type='button' onclick='deleteDetail(this)'> <input value='修改' type='button' onclick='modify()'></td>"
+"</tr>";
$(col).insertBefore($("table tr#end"))
var s;
$("#planSum").each(function(){//计算合计计划数量
s=parseInt($('#sum').val())+parseInt($(this).val());
});
$('#sum').val(s);
tableLine();
win.close();
}
如果我吧第一条删除,就没有XXX[1].name了,前台写js封装很麻烦!!!!
产品名称: <input type="text" name="productName"> 产品型号:<input type="text" name="productType">
产品名称: <input type="text" name="productName"> 产品型号:<input type="text" name="productType">
产品名称: <input type="text" name="productName"> 产品型号:<input type="text" name="productType">后台用 String[] productName= request.getParameterValues("productName");
String[] productType= request.getParameterValues("productType");然后依次读取数组里的数据就可以了
我做的功能和你的需求差不多 也是js添加新行或者删除行
插入多条数据
String discount[]=request.getParameterValues("discount");
String count[]=request.getParameterValues("num");
String price[]=request.getParameterValues("price");
String orderid = request.getParameter("orderid");public boolean updateOrder(String[] id, String[] count,String[] discount,String[] price) {
boolean b = false;
try {
jdbc = new JDBConnection();
connection = jdbc.connection;
double dis = 0;
for(int i=0;i<id.length;i++){
if(discount[i]!=null&&!"".equals(discount[i])){
dis = (Double.parseDouble(discount[i]))/100;
}
String idstr = id[i];
String countstr=count[i];
float pricestr=Math.round(Float.parseFloat(price[i])*dis*100)/100f;
String sql="update tb_orderDetail set number1='"+countstr+"' ,discount='"+dis+"',price='"+pricestr+"' where id='"+idstr+"'";
ps=connection.prepareStatement(sql);
ps.executeUpdate();
b = true;
}
ps.close();
connection.close();
return b;
} catch (SQLException ex) {
b = false;
ex.printStackTrace();
return b;
}
}希望對你有用,呵呵
List<String>valueList = new Vector<String>();
for(String para: paramList){ if(para.eqquals("")){ //专门处理name是你要的产品的那些文本域
valueList.add(request.getParameter(para);//做好字符集编码处理
}
}
<input name="entities[0].name"> 这样写即可. 要做的任意增减的话,肯定要用js控制一下了
至于<input name="entity.name"><input name="entity.id"> 这这种写法,是错误的。struts2怎么知道该创建一个entity对象呢,还是两个entity对象呢.action用list接收即可
String codes[]=request.getParameterValues("codes");
String names[]=ServletActionContext.getRequest().getParameterValues("names");
String codes[]=ServletActionContext.getRequest().getParameterValues("codes");