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