JS当中不能接收ModelAndView的返回值吗?一定要在JSP页面中才能接收吗?
1 方法一 【有效】
可以的,跟el表达式访问方式一样。
示例代码,一个数据展示请求的Action中存入一个userId:
@RequestMapping(value="/diary")
public ModelAndView toDiaryList(HttpSession session){
ModelAndView view = new ModelAndView("/diary_list");
TbUser user = (TbUser)session.getAttribute(SystemConstant.CURRENT_USER);
//set info of current user</br>
if(user!=null){</br>
Integer id = user.getId();</br>
view.addObject("userId",id);</br>
}</br></br>
return view;</br>
}</br>
在页面jsp文件中js中使用这个userId作为查询条件:
<script type="text/javascript">
var path = '<%=basePath%>';
var author=${userId};
$(document).ready(function(){
queryList();
});
function queryList(){</br>
$.ajax({</br>
type : 'POST',</br>
url : path+'queryDiaryList', //通过url传递name参数</br>
data : {</br>
author:author,</br>
page:_currentPage,</br>
pageSize:_pageSize,</br>
type:$("#queryType").val()</br>
},</br>
dataType : 'json',</br>
success:function(data){</br>
if(data.status){</br>
showTable(data.result);</br>
//调用分页插件,初始化分页Div</br>
pageShow("queryList",data.ext.total);</br>
}else{</br>
alert(data.description);</br>
}</br>
},</br>
error:function(e){</br>
alert("Net error ,try later.");</br>
}</br>
});</br>
}</br>
</script></br>
2 方法二【有效?】
台返回的是js,还是json?这个一定要搞清楚! 假设后台返回的字符串存储在responseText里,那么 如果是js,就 var result = eval("(" + responseText + ")"); 如果是json,就 var result = JSON.parse(responseText);
3 方法三 【有效】
加入隐藏字段,
<input id="autoflag" type="hidden" value="${autoflag}">
便于js读取
var passflag=document.getElementById("autoflag");