腊八节快乐,继续码博客!
在平时开发中,我们知道controller中封装在ModelAndView中的值,我们在Jsp页面上可以用EL标签取出值.那么在Js文件中我们可以获取到ModelAndView值的吗?接下来,我们一起探究!
1. 方法一
在示例的Controller中,我们将”userId”放入ModelAndView中.
Controller:
@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:
<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>
总结:此方法适用用jsp页面内容和js文件写在一起的
2,方法二
在Jsp页面添加隐藏字段,并赋值,在Js文件获取值
Jsp:
<input id="autoflag" type="hidden" value="${autoflag}">
Js:
var passflag=document.getElementById("autoflag");
总结:此方法适用用jsp页面的js文件从外部引入