最近开发中遇到了页面传递数组到Action后台List类型,接受到的list对象并不是想象的按照数组元素位置对应的接受,例如数组的0位置插入到list对象的0位置,
而是数组的全部内容全部插入到了list集合的第一位置。经过反复的试验,没有找到很好的解决办法,只能把这种粗糙的实现方式记录下来,以求抛砖引玉望大家能给出更好的实现方式。
这是jsp页面代码:异步提交数组到Action中:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title> <script src="plugin/dwz/js/jquery-1.7.2.js" type="text/javascript"></script> <script type="text/javascript"> function testceshi(log) { var v = new Array(); v = $(".testname"); var v1 = new Array(); for(var i = 0; i < v.length; i++) { v1[i] = v[i].value; } $.ajax({ url : "loginAction!testarray", type : "POST", data : "ajaxField=" + v1, success : function(data) { alert(data); } }); } </script> </head> <body> <form action="loginAction!success" method="post"> 测试<input class="testname" type="text"/><br> 测试<input class="testname" type="text"/><br> 测试<input class="testname" type="text"/><br> 测试<input class="testname" type="text"/><br> 测试<input class="testname" type="text"/><br> <input type="button" value="测试" onclick="testceshi(11)"/> </form> </body> </html>
后台java代码:接受页面传递的数组,经过测试数组全部插入到list集合的第一个位置。
@Controller @Scope("prototype") public class LoginAction extends ActionSupport { private List<String> ajaxField = new ArrayList(); public void testarray() { String str = (String) ajaxField.get(0); System.out.println(str); List<String> list = new ArrayList<String>(); String[] strs = str.split(","); for (String string : strs) { System.out.println(string); list.add(string); } for(int i = 0; i < ajaxField.size(); i++) { System.out.println(ajaxField.get(i)); } HttpServletResponse response = ServletActionContext.getResponse(); try { PrintWriter write = response.getWriter(); response.setContentType("text/html"); write.print("hello"); write.flush(); write.close(); } catch (IOException e) { e.printStackTrace(); } }
虽说实现数组传递的过程有点瑕疵,但是对于异步Ajax传递的实现方式还是正确的,对于不传递数组,只传递变量的情况,还是可以参考的。
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数组
, string
, 测试
, list
, loginaction
, 位置
, 页面提交string数组
, write
, 疑惑
, 数组传递
, 传递数组
ajax传递数组
redux 异步action、redux 异步action实例、异步action、mvc 异步action、c action 异步,以便于您获取更多的相关知识。