1. 程式人生 > >EasyUi 表單提交,後臺跳頁的問題

EasyUi 表單提交,後臺跳頁的問題

問題描述:最近自己寫一個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();
       }  
	}
}