js获取ModelAndView值的问题

本文介绍在JavaScript中从Java的ModelAndView获取数据的方法。通过三种有效途径实现:直接利用EL表达式的值,处理后台返回的JS或JSON字符串,以及使用隐藏字段存储值供JS读取。

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
if(user!=null){
Integer id = user.getId();
view.addObject("userId",id);
}

return view;
}

在页面jsp文件中js中使用这个userId作为查询条件:

    <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");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值