JS當中不能接收ModelAndView的返回值嗎?必定要在JSP頁面中才能接收嗎?javascript
1 方法一
java【有效?】
能夠的,跟el表達式訪問方式同樣。
示例代碼,一個數據展現請求的Action中存入一個userId:ajax
@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 if(user!=null){ Integer id = user.getId(); view.addObject("userId",id); } return view; }
在頁面jsp文件中js中使用這個userId做爲查詢條件:json
<script type="text/javascript"> var path = '<%=basePath%>'; var author=${userId}; $(document).ready(function(){ queryList(); }); function queryList(){ $.ajax({ type : 'POST', url : path+'queryDiaryList', //經過url傳遞name參數 data : { author:author, page:_currentPage, pageSize:_pageSize, type:$("#queryType").val() }, dataType : 'json', success:function(data){ if(data.status){ showTable(data.result); //調用分頁插件,初始化分頁Div pageShow("queryList",data.ext.total); }else{ alert(data.description); } }, error:function(e){ alert("Net error ,try later."); } }); } </script>
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");便於js讀取