Spring MVC傳遞URL到後臺引數為空
阿新 • • 發佈:2019-02-20
除錯手機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);