EasyUi 表單提交,後臺跳頁的問題
阿新 • • 發佈:2019-01-10
問題描述:最近自己寫一個demo,用easyui框架,表單用easyui的submit方法進行提交.到後臺後,return 路徑 發現,前臺無法跳頁.
經查閱,這個可能是submit這個方法是ajax,有回撥機制,所以無法從後臺跳頁,也許吧
解決方案是,在後臺寫一個json,把要跳轉的路徑放進這個json裡去,然後把json傳到前臺,前臺接收並解析後,獲取路徑.然後利用
window.location.herf來進行跳轉.
程式碼如下:
前臺程式碼:
function submitData(){ $('#myForm').form('submit', { url: "${pageContext.request.contextPath}/userAuth", onSubmit: function(){ if($("#groupId").val() == "請選擇"){ $.messager.alert("提示","請選擇角色!","info"); return false; } return $(this).form('validate'); }, success: function(data){ var js = $.parseJSON(data); var url = js.url; if(js.errorInfo == null){ window.location.href= "${pageContext.request.contextPath}"+url; }else{ $("#errorInfo").html(js.errorInfo); $("#errorInfo").css("visibility","visible"); } } }); }
後臺程式碼:
@RequestMapping(value="/userAuth",produces="text/html;charset=UTF-8") @ResponseBody public String userAuth(Model model,User user,String roleName) { Subject currentUser = SecurityUtils.getSubject(); JSONObject js = new JSONObject(); if (currentUser.isAuthenticated()) { js.put("url", "/index"); return js.toString(); } //token安全令牌 UsernamePasswordToken token = new UsernamePasswordToken(user.getUserLoginname(), user.getUserPassword()); try { //呼叫登入,會自動進入realm currentUser.login(token); if(currentUser.hasRole(roleName)) { Session session=currentUser.getSession(); session.setAttribute("subject", currentUser); //登陸成功 js.put("url", "/index"); return js.toString(); }else { currentUser.logout(); js.put("errorInfo", "請確認角色是否正確!"); js.put("url", "/login"); return js.toString(); } //登陸失敗.丟擲異常 } catch (AuthenticationException e) { js.put("errorInfo", "賬號或密碼錯誤!"); js.put("url", "/login"); return js.toString(); } } }