这是自己做的一个小例子,尽管实现有些繁杂,但功能已经完全实现,如果大家看了之后有好的实现方式,请指正
jsp中有登录的form表单:
<form id="userform" action="" method="post" name="testlogin">
<s:textfield id="name" name="user.name" label="用户名"></s:textfield><br/>
<s:password id="password" name="user.password" label="密码"></s:password><br/>
<input type="button" value="登录" οnclick="login();"/>
<input type="button" value="重置" οnclick="reset();"/>
</form>
struts的Action
public class MainAction extends ActionSupport {
private User user;
private String msg;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String index(){
return SUCCESS;
}
public String login(){
System.out.println(user.getName());
return SUCCESS;
}
public String check(){
this.msg = "0";
if(user.getName().equals("abc")){
this.msg = "1";
}else{
this.msg = "0";
}
return SUCCESS;
}
}
struts.xml文件针对ajax请求的Action的配置
<package name="" extends="json-default" namespace="">
<action name="" class="" method="">
<result name="success" type="json"></result>
</action>
</namespace>
利用jquery实现ajax:
function login(){
var params = $('#userform').serialize();//利用jquery将表单序列化
//jquery发送ajax请求
$.ajax({
url: '',
type: 'post',
dataType: 'json',
data: params,
success: doCheckSuccess
});
}
function doCheckSuccess(data){
if(data.msg == 1){
document.testlogin.submit();//testlogin为form的name属性
}else{
alert("用户名已存在");
}
}
整个请求过程大概如下:
1、首先按照url和请求方式将序列化好的数据发送至对应的action,被序列化的params是name=123&password=123这样的
2、action在处理完成之后将msg以json的形式发送至客户端,由客户端的js验证
转载于:https://blog.51cto.com/feidandelion/473369