Springmvc中使用ModelAndView傳值
1 return new ModelAndView(url).addObject(CommonConstant.PAGE_KEY, page) 2 .addObject("logObj", logObj);
這里要獲取logObj的值可以直接用${logObj}取值.
如果在js中獲取值的話, 需要加 ' ' 表示這是一個字符串.否則js報錯未定義.
js取值
1 var selectValue; 2 selectValue='<%=request.getAttribute("logObj")%>'; 或者selectValue='${logObj}';
jsp取值
<input type="text" id="selectID3" name="selectID3" value="${logObj}" />
此外在js中如想不添加'' 也可在ModelAndView.addObjet時,將值轉為字符串.
1 .addObject("logObj", JSON.toJSONString(logObj));
如此對應前台需改為
js取值
1 var selectValue; 2 selectValue=${logObj};
jsp取值
<input type="text" id="selectID3" name="selectID3" value=${logObj} />
這里.addObject("logObj", logObj);和.addObject("logObj", JSON.toJSONString(logObj));的區別未知.可能與ModelAndView的解析有關.
問題發生的版本為spring-web 3.1
這版本還有已知的bug,如@RequestBody Object o可以方便將json請求和用戶定義的對象o進行轉換,
而轉換的過程中的面對屬性為空或者屬性名不一致的情況下,會被統一被封裝為400/415.
在springweb3.2才開始支持在@RequestBody中對Object中對屬性require 和不為空的屬性設置.