首页 > 生活冷门小知识

serializearray,j*a toarray

spring mvc 怎样接收formdata

表单的代码如下:

<%@ page language=”j*a” contentType=”text/html; charset=UTF-8″

pageEncoding=”UTF-8″%>

<!DOCTYPE html PUBLIC”-//W3C//DTD HTML 4.01 Transitional//EN”””>

<html>

<head>

<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>

<title>Add User</title>

<script type=”text/j*ascript”>

//添加用户

function addUser(){

var form= document.forms[0];

form.action=”${pageContext.request.contextPath}/user/addUser1″;

//form.action=”${pageContext.request.contextPath}/user/addUser2″;

//form.action=”${pageContext.request.contextPath}/user/addUser3″;

form.method=”post”;

form.submit();

}

</script>

</head>

<body>

<form>

<table>

<tr>

<td>账号</td>

<td>

<input type=”text” name=”userName”>

</td>

</tr>

<tr>

<td>密码</td>

<td>

<input type=”password” name=”password”>

</td>

</tr>

<tr>

<td></td>

<td>

<input type=”button” value=”提交” onclick=”addUser()”>

</td>

</tr>

</table>

</form>

</body>

</html>

1、直接把表单的参数写在Controller相应的方法的形参中

@RequestMapping(“/addUser1”)

public String addUser1(String userName,String password){

System.out.println(“userName is:”+userName);

System.out.println(“password is:”+password);

return”/user/success”;

}

2、通过HttpServletRequest接收

@RequestMapping(“/addUser2”)

public String addUser2(HttpServletRequest request){

String userName= request.getParameter(“userName”);

String password= request.getParameter(“password”);

System.out.println(“userName is:”+userName);

System.out.println(“password is:”+password);

return”/user/success”;

}

3、通过一个bean来接收

1)建立一个和表单中参数对应的bean

public class User{

private String userName;

private String password;

public String getUserName(){

return userName;

}

public void setUserName(String userName){

this.userName= userName;

}

public String getPassword(){

return password;

}

public void setPassword(String password){

this.password= password;

}

}

2)用这个bean来封装接收的参数

@RequestMapping(“/addUser3”)

public String addUser3(User user){

System.out.println(“userName is:”+user.getUserName());

System.out.println(“password is:”+user.getPassword());

return”/user/success”;

}

4、通过json数据接收

<%@ page language=”j*a” contentType=”text/html; charset=UTF-8″

pageEncoding=”UTF-8″%>

<!DOCTYPE html PUBLIC”-//W3C//DTD HTML 4.01 Transitional//EN”””>

<html>

<head>

<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>

<title>Add User</title>

<script type=”text/j*ascript” src=”${pageContext.request.contextPath}/resource/script/jquery-1.9.1.min.js”></script>

<script type=”text/j*ascript”>

$(document).ready(function(){

$(“#button_submit”).click(function(){

var name=$(“#userName”).val();

var pass=$(“#password”).val();

var user={userName:name,password:pass};//拼装成json格式

$.ajax({

type:”POST”,

url:”${pageContext.request.contextPath}/user/addUser4″,

data:user,

success:function(data){

alert(“成功”);

},

error:function(e){

alert(“出错:”+e);

}

});

});

});

</script>

</head>

<body>

<form>

<table>

<tr>

<td>账号</td>

<td>

<input type=”text” id=”userName” name=”userName”>

</td>

</tr>

<tr>

<td>密码</td>

<td>

<input type=”password” id=”password” name=”password”>

</td>

</tr>

<tr>

<td></td>

<td>

<input type=”button” id=”button_submit” value=”提交”>

</td>

</tr>

</table>

</form>

</body>

</html>

依然可以使用bean来接收json数据

@RequestMapping(“/addUser4”)

public String addUser4(User user){

System.out.println(“userName is:”+user.getUserName());

System.out.println(“password is:”+user.getPassword());

return”/user/success”;

}

5、使用jQuery的serializeArray()方法序列化表单元素

如果表单元素很多,手工拼装成json数据非常麻烦,可以使用jQuery提供的serializeArray()方法序列化表单元素,返回json数据结构数据。

<%@ page language=”j*a” contentType=”text/html; charset=UTF-8″

pageEncoding=”UTF-8″%>

<!DOCTYPE html PUBLIC”-//W3C//DTD HTML 4.01 Transitional//EN”””>

<html>

<head>

<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>

<title>Add User</title>

<script type=”text/j*ascript” src=”${<a href=”” title=”微信互动游戏开发玩转微信互动营销pageContext.request.contextPath}/resource/script/jquery-1.9.1.min.js”></script>

<script type=”text/j*ascript”>

$(document).ready(function(){

$(“#button_submit”).click(function(){

//序列化表单元素,返回json数据

var params=$(“#userForm”).serializeArray();

//也可以把表单之外的元素按照name value的格式存进来

//params.push({name:”hello”,value:”man”});

$.ajax({

type:”POST”,

url:”${pageContext.request.contextPath}/user/addUser5″,

data:params,

success:function(data){

alert(“成功”);

},

error:function(e){

alert(“出错:”+e);

}

});

});

});

</script>

</head>

<body>

<form id=”userForm”>

<table>

<tr>

<td>账号</td>

<td>

<input type=”text” id=”userName” name=”userName”>

</td>

</tr>

<tr>

<td>密码</td>

<td>

<input type=”password” id=”password” name=”password”>

</td>

</tr>

<tr>

<td></td>

<td>

<input type=”button” id=”button_submit” value=”提交”>

</td>

</tr>

</table>

</form>

</body>

</html>

依然可以使用bean来接收json数据:

@RequestMapping(“/addUser5”)

public String addUser5(User user){

System.out.println(“userName is:”+user.getUserName());

System.out.println(“password is:”+user.getPassword());

return”/user/success”;

}

如何结合Jquery 的validate 和 ajax submit进行工作

在jquery中使用ajax方式进行异步调用有3种方式:$.post、$.get、$.ajax.

其中$.post、$.get是封装的$.ajax方法。处理一些较为简单的ajax请求,参数少的情况。

如果遇到复杂数据传输,或者对传输配置参数需要定义,就需要$.ajax了。

一、$.ajax的一般格式

$.ajax({

type:'POST',

url: url,

data: data,

success: success,

dataType: dataType

});

二、$.ajax的参数描述

参数描述

url必需。规定把请求发送到哪个 URL。

data可选。映射或字符串值。规定连同请求发送到服务器的数据。

success(data, textStatus, jqXHR)可选。请求成功时执行的回调函数。

dataType可选。规定预期的服务器响应的数据类型。

默认执行智能判断(xml、json、script或 html)。

三、$.ajax需要注意的一些地方:

1.data主要方式有三种,html拼接的,json数组,form表单经serialize()序列化的;

通过dataType指定,不指定智能判断。

2.$.ajax只提交form以文本方式,如果异步提交包含<file>上传是传过不过去,

需要使用jquery.form.js的$.ajaxSubmit

四、代码实例。

1.$.ajax带json数据的异步请求

1<SPAN style=”FONT-FAMILY:微软雅黑,'Microsoft YaHei'; FONT-SIZE: 14px”> var inputMac=$(“#inputMac”).val();<BR> var selectType=$(“#selectType”).val();<BR> var selectStatus=$(“#selectStatus”).val();<BR>$.ajax({<BR> type:”post”,<BR> dataType:'json',<BR> url: AjaxUrl,<BR> data:{<BR> mac: inputMac,<BR> status: selectStatus,<BR> type: selectType<BR>},<BR> success: function(data, textStatus){<BR> if(data!= null){<BR><BR> var ap= eval(data);<BR> if(ap!= null&& ap!=”undefined”&& ap.Id>0){<BR>//window.location.href='index.aspx';<BR> alert(“添加成功。”); return;<BR>}<BR> else{<BR> alert(“添加失败,请检查输入是否正确。”); return;<BR>}<BR>}<BR>},<BR> complete: function(XMLHttpRequest, textStatus){<BR><BR>},<BR> error: function(e){<BR> alert(“添加失败,请检查输入是否正确。”); return;<BR>}<BR>});<BR></SPAN>

2.$.ajax序列化表格内容为字符串的异步请求

使用方法是: var formParam=$(“#form1”).serialize();//序列化表格内容为字符串。

将formParam作为data传递给服务器。

serialize()与 serializeArray()

serialize():序列表表格内容为字符串。

serializeArray():序列化表格元素(类似'.serialize()'方法)返回 JSON数据结构数据。

1<SPAN style=”FONT-FAMILY:微软雅黑,'Microsoft YaHei'; FONT-SIZE: 14px”> var formParam=$(“#form1”).serialize();//序列化表格内容为字符串<BR>$.ajax({<BR> type:'post',<BR> url:'Notice_noTipsNotice',<BR> data:formParam,<BR> cache:false,<BR> dataType:'json',<BR> success:function(data){<BR>}<BR>});<BR></SPAN>

3.$.ajax拼接url的异步请求

1<SPAN style=”FONT-FAMILY:微软雅黑,'Microsoft YaHei'; FONT-SIZE: 14px”>var yz=$.ajax({<BR> type:'post',<BR> url:'validatePwd2_checkPwd2?password2='+password2,<BR> data:{},<BR> cache:false,<BR> dataType:'json',<BR> success:function(data){<BR> if( data.msg==”false”)//服务器返回false,就将validatePassword2的值改为pwd2Error,这是异步,需要考虑返回时间<BR>{<BR> textPassword2.html(“<font color='red'>业务密码不正确!</font>”);<BR>$(“#validatePassword2”).val(“pwd2Error”);<BR> checkPassword2= false;<BR> return;<BR>}<BR>},<BR> error:function(){}<BR>});<BR></SPAN>

4.$.ajax拼接data的异步请求

1<SPAN style=”FONT-FAMILY:微软雅黑,'Microsoft YaHei'; FONT-SIZE: 14px”>$.ajax({<BR> url:'<%=request.getContextPath()%>/kc/kc_checkMerNameUnique.action',<BR> type:'post',<BR> data:'merName='+values,<BR> async: false,//默认为true异步<BR> error:function(){<BR> alert('error');<BR>},<BR> success:function(data){<BR>$(“#”+divs).html(data);<BR>}<BR>});<BR></SPAN>

servlet怎么解析jquery通过serialize提交的表单

下面是服务器端的jsp代码:

与JQuery中其他方法一样,serialize()方法也是作用于一个JQuery对象,它能够将DOM元素内容序列化为字符串,用于ajax请求。通过使用serialize()方法,可以提交本页面的所有域,代码如下:

当单击“提交”按钮后,所有属于form1的表单元素都能提交到后台,即使在表单中再增加字段,脚本仍然能够使用,并且不需要做其他多余工作。

用字符串方式时,需要注意对字符编码(中文问题),如果不希望编码带来麻烦,可以使用serialize()方法,它会自动编码。

因为serialize()方法作用于JQuery对象,所以不光只有表单能使用它,其他选择器选取的元素也都能使用它,如以下JQuery代码:

$(“:checkbox,:radio”).serialize()

把复选框和单选框的值序列化为字符串形式,只会将选中的值序列化。

在JQuery中还有一个与serialize()类似的方法–serializeArray(),该方法不是返回字符串,而是将DOM元素序列化后,返回JSON格式的数据。JQuery代码如下:

var fields=$(“:checkbox,:radio”).serializeArray()

console.log(fields);//用FireBug输出

$.param()方法是serialize()方法的核心,用来对一个数组或对象按照key/value进行序列化。

比如将一个普通的对象序列化:

var obj={a:1,b:2,c:3}

var k=$.param(obj)

alert(k);//输出a=1&b=2&c=3

本文链接:http://www.po-te.com/html/87964563.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。