如何通过jquery ajax调用发送会话范围属性

时间:2011-08-02 08:02:29

标签: jquery ajax spring spring-mvc

我有一个问题,我有这个jQuery代码:

    $(document).ready(function(){
        $("#follow").click(function(){
            $.ajax({
                type: 'POST',
                url:'/tweety-0.0.1-SNAPSHOT/twitter/tiles/follow',
                data:{
                        searchedUser: $('#searchedUser').val()
                }   
        })
    })
})

这段代码获取隐藏ID并将其值发送到我的控制器中的以下方法:

@RequestMapping(value="/follow",method=RequestMethod.POST)
    public @ResponseBody void followUser(@RequestParam("searchedUser") String userToFollow, 
            @ModelAttribute("user") User user) {
            if(userToFollow.equals(user.getUsername())){
                // do nothing
            }else{
                service.followUser(userToFollow,user.getUsername());
            }
    }

我想通过之前的ajax调用发送一个会话范围属性。关于如何做到这一点的任何线索??

2 个答案:

答案 0 :(得分:2)

最好的办法是在页面的某个地方的隐藏输入字段中输入该属性的值,这样您就可以使用jQuery读取它。 不幸的是,据我所知,jQuery或javascript无法访问请求,会话或应用程序范围变量。

所以,如果你做这样的事情:

<input type='hidden' name='${sessionVarName}' value='${sessionVarValue}' id='sessionVar'/>

您可以在页面加载后访问它:

$(function(){
  var sessionVar = $('#sessionVar').val();
  alert(sessionVar);
});

这是我在需要将tomcat会话变量转换为javascript时使用的解决方案,该方法也适用于你。

希望这有帮助

答案 1 :(得分:0)

我建议你发送一个AttributeName,它会成功地让你获得sessionScope属性,这很简单。