欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

浅谈js获取ModelAndView值的问题

程序员文章站 2022-05-17 11:20:51
...
下面我就为大家分享一篇浅谈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
    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);
            //调用分页插件,初始化分页p
            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");

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

Ajax核心XMLHttpRequest总结

解决ajax跨域请求数据cookie丢失问题

使用ajax实现无刷新改变页面内容和地址栏URL

以上就是浅谈js获取ModelAndView值的问题的详细内容,更多请关注其它相关文章!