关于登录后跳转的问题。
looyo
2015-03-05
登录页面,是表单使用jquery.validate 插件,用于验证并且提交。现在问题是,点击登录按钮后,后台控制器跟踪运行完毕后,浏览器还是停留在login.html页面不会跳转。
提交部分的片段代码如下 submitHandler : function(form) { var operData={ loginName:$("#userNameFld").val(), passwd:$("#passwdFld").val() }; $.ajax ({ url : "/sysmng/usermng/UserLogin.do", type : "POST", contentType : "application/json", data : JSON.stringify(operData), success : function (jsonResult) { var x=jsonResult; }, error:function (err) { var b=err; $("#errmsg").html(err.responseText); } }); } 现在不知道 UserLogin.do 改如何写,才能保证登录完毕后,页面自动跳转到/index.html 中来。 控制器代码如下: @RequestMapping(value = "/UserLogin", method = RequestMethod.POST) public ModelAndView queryUsers(@RequestBody ModelMap map,HttpServletRequest request,HttpServletResponse response) { String loginName = (String) map.get("loginName"); String password = (String) map.get("passwd"); LoginUser lu=null; // 此处代码省略 if(用户验证成功,lu不再为null) { operResultStr=""; resultMap.put("operReuslt", operResultStr); resultMap.put("loginUser",lu); request.getSession(true).setAttribute("LoginUser",lu); try { request.getRequestDispatcher("/index.html").forward((ServletRequest) request, (ServletResponse) response); }catch(Exception ex) { ex.printStackTrace(); } result=new ModelAndView("index",resultMap); return result; }else { operResultStr="Fail to login"; } } resultMap.put("operReuslt", operResultStr); result=new ModelAndView("/login.html",resultMap); return result; } |
|
Michael_113
2015-03-09
异步请求,返回个标识,前台跳转啊
|
|
looyo
2015-03-09
Michael_113 写道 异步请求,返回个标识,前台跳转啊
谢谢你的回复,这种实现方法,我已经想到了,不过我想看看还有没有其它方式。 |
|
alan3258
2015-03-12
@RequestMapping(value = "/UserLogin", method = RequestMethod.POST) public ModelAndView queryUsers(@RequestBody ModelMap map,HttpServletRequest request,HttpServletResponse response) { String loginName = (String) map.get("loginName"); String password = (String) map.get("passwd"); LoginUser lu=null; // 此处代码省略 if(用户验证成功,lu不再为null) { operResultStr=""; resultMap.put("operReuslt", operResultStr); resultMap.put("loginUser",lu); request.getSession(true).setAttribute("LoginUser",lu); try { request.getRequestDispatcher("/index.html").forward((ServletRequest) request, (ServletResponse) response); }catch(Exception ex) { ex.printStackTrace(); } result=new ModelAndView("index",resultMap); return result; }else { operResultStr="Fail to login"; } } resultMap.put("operReuslt", operResultStr); [b]//这里直接new一个你需要跳转到的目标地址就好了 //例如 result=new ModelAndView("/main.html",resultMap); [/b] result=new ModelAndView("/login.html",resultMap); return result; } |
|
devilyard
2015-03-17
楼上这个方法恐怕不起作用,Ajax请求应该是不能处理后台跳转的
|
|
qwertyxl
2015-03-18
不用改后台,ajax登录成功后,在success回调函数里面写window.location="index.html";
|