js获取ModelAndView值的问题
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");