我想做一个登陆页面。JSP+struts2+JQuery ajax
输入用户名和密码后使用ajax post到Action,action验证后如果用户名和密码错误,则在页面上显示"用户名或者密码错误",如果正确则跳转到主页面。 要求是
1.不想在action中操作request,reponse等对象,让action与具体平台无关。
2.不用刷新整个登陆页面。
输入用户名和密码后使用ajax post到Action,action验证后如果用户名和密码错误,则在页面上显示"用户名或者密码错误",如果正确则跳转到主页面。 要求是
1.不想在action中操作request,reponse等对象,让action与具体平台无关。
2.不用刷新整个登陆页面。
让action与具体平台无关,什么意思使用ajax可以确保页面不刷新,前台post或get提交的数据的数据,后台可从参数中获取,struts的参数绑定机制完全可以绑定到action类的某个变量上,表面上看并没有操作request对象,但是实质呢,需要观察源码了
其实我就想实现:
输入用户名和密码,提交给Action,如果验证不通过,则在页面上显示“用户名或者密码错误”,前提是不能刷新整个页面。
如果验证通过,则跳转到其他的页面。我可以让Action返回JSON,把验证结果和要跳转到页面放到JSON中,然后前台判断返回的JSON,并且决定是跳转还是显示提示信息。除了这个办法,还有别的办法么?
$('#loginform').bind('submit', function(){
var ret =false;;
$.ajax({
type: "POST",
async: false,
url:"PMData/login.action",
data:$('#loginform').serialize(),
success: function (data) {
ret = data.msg == "ERROR" ? false :true;
if(ret==false){
alert("用户名或者密码错误!");
}
},
error: function (err) {
alert(err);
}
});
return ret;
});
<action name="login" class="BeenChina.PM.Action.LoginAction">
<result name="success" type="redirect">/MainPage.jsp</result>
<result name="error" type="json">json
<param name="includeProperties">
msg
</param>
</result>
</action>