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");