Springmvc中使用ModelAndView传值
return new ModelAndView(url).addObject(CommonConstant.PAGE_KEY, page)
.addObject("logObj", logObj);
这里要获取logObj的值可以直接用${logObj}取值.
如果在js中获取值的话, 需要加 ' ' 表示这是一个字符串.否则js报错未定义.
js取值
var selectValue;
selectValue='<%=request.getAttribute("logObj")%>'; 或者selectValue='${logObj}';
jsp取值
<input type="text" id="selectID3" name="selectID3" value="${logObj}" />
此外在js中如想不添加'' 也可在ModelAndView.addObjet时,将值转为字符串.
.addObject("logObj", JSON.toJSONString(logObj));
如此对应前台需改为
js取值
var selectValue;
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 和不为空的属性设置.