1. 程式人生 > >Spring MVC傳遞URL到後臺引數為空

Spring MVC傳遞URL到後臺引數為空

除錯手機WAP站,傳遞多個引數到Controller層,結果發現mesage引數為空,而其他引數卻不為空。

	@RequestMapping("msgbox")
	public String msgbox(Model model, boolean success, String message, String hrefUrl, String hrefText)
	{
		model.addAttribute("success", success);
		model.addAttribute("message", message);
		model.addAttribute("hrefUrl", hrefUrl);
		model.addAttribute("hrefText", hrefText);
		
		return WAP_VM + "wap_msg_box.vm";	
	}

在對應的前端頁面,用alert語句列印message引數,顯示正常。
   	function showDetails(detailId) {
        //...
        var url = "/wap/msgbox"
            +"?success=true&message="+$("#detailsDiv").html()+"&hrefUrl=&hrefText=確定";
    	window.location=encodeURI(url);
   	}

最開始懷疑是引數太長,被截斷,測試message為0123...,長度從200,400,1000,3000...不等,都沒有問題。

注意到有一個錯誤資訊:org.apache.tomcat.util.http.Parameters processParameters警告。

考慮其他原因:

1. 含有%字元,沒有特殊處理;

2. 直接對URL進行編碼,查詢JavaScript直接就有URL編碼函式:

window.location=encodeURI(url);