我想做一个登陆页面。JSP+struts2+JQuery ajax 
输入用户名和密码后使用ajax post到Action,action验证后如果用户名和密码错误,则在页面上显示"用户名或者密码错误",如果正确则跳转到主页面。 要求是 
1.不想在action中操作request,reponse等对象,让action与具体平台无关。 
2.不用刷新整个登陆页面。

解决方案 »

  1.   

    Ajax做登录效果 很好啊 ,用jquery发送异步请求,然后Action页面接收参数,查询数据库,判断是否正确,然后reponse发送验证字符串 ,jquery 的回调函数 接收参数,,alert 登录成功/失败..
      

  2.   

    你使用了struts框架,那么在后台和前台的交互过程中,假如struts源码操纵了request、response对象你怎么办呢?
    让action与具体平台无关,什么意思使用ajax可以确保页面不刷新,前台post或get提交的数据的数据,后台可从参数中获取,struts的参数绑定机制完全可以绑定到action类的某个变量上,表面上看并没有操作request对象,但是实质呢,需要观察源码了
      

  3.   

    好吧。
    其实我就想实现:
    输入用户名和密码,提交给Action,如果验证不通过,则在页面上显示“用户名或者密码错误”,前提是不能刷新整个页面。
    如果验证通过,则跳转到其他的页面。我可以让Action返回JSON,把验证结果和要跳转到页面放到JSON中,然后前台判断返回的JSON,并且决定是跳转还是显示提示信息。除了这个办法,还有别的办法么?
      

  4.   

    不刷新就只能用ajax了  或者用iframe模拟ajax
      

  5.   

    别想了,ajax 是最好的选择
      

  6.   


    $('#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>