【问题标题】:How do I save a string in the session with Spring MVC?如何使用 Spring MVC 在会话中保存字符串?
【发布时间】:2012-04-05 03:42:51
【问题描述】:

我是 Spring MVC 的新手,我正在尝试找出合适的方法来做一些我认为非常简单的事情。

我有一个简单的 jQuery AJAX 调用:

    var dataString = 'existingProject='+ $("#existingProject").val() + '&newProjName=' +      $("#newProjName").val();

    $.ajax({  
        type: "POST",  
        url: "manageProjects.html",  
        data: dataString            
    });

我想为用户的会话设置此用户设置“项目”。这个 AJAX 调用来自 JS 文件中的 javascript 并连接到我的 Spring MVC 控制器。

控制器正在获取这些变量,但我不确定如何处理它以使这些数据传入会话特定。

我已经用谷歌搜索了这个主题,并遇到了 6 个不同的选项(具有自动装配的注入 Session 范围 bean、具有 xml 配置和 cgl-nodep 库的 bean、HttpServlet 属性、@ModelAttribute、@SessionAttribute 等) .我尝试使用 Session 范围的 bean 并定义了以下内容:

@Component
@Scope("session")
public class UserSettings

...但是 bean 并没有被锁定到会话中。我在我的控制器中使用了@Autowire,发现它在会话之间仍然是同一个实例,所以我显然把它搞砸了。

我只想保存一个该死的字符串!必须有一个 101 级的简单方法来做到这一点......

【问题讨论】:

    标签: jquery ajax spring model-view-controller session


    【解决方案1】:
    @RequestMapping(value = "/request/mapping")
    public ModelAndView methodName(HttpSession session,...){
    
    session.setAttribute("testVariable", "Test Values!!");
    }
    

    @RequestMapping("/test")
    @Controller
    public class TestController {
        @RequestMapping(method = RequestMethod.GET)
        public String testMestod(HttpServletRequest request)
        {
            request.getSession().setAttribute("testVariable", "Test Values!!");
            return "testJsp";
        }
    }
    

    【讨论】:

    • 好的,但是当我开始 AJAX 调用时如何设置该值?为 AJAX 调用设置会话中的属性的“处理程序”方法是否合适,然后其他所有人都将其拉回?这是标准做法吗?
    • 没区别,只是把pass request或者session放到你的ajax处理方法中。
    • 我接受了您的第一个建议并使用了 HttpSession。我接受了 AJAX 调用并在会话中设置了属性。然后我在其他需要它的控制器操作中查找该值。看起来该属性在会话中持续存在。我打开了一个新标签并再次访问该网站,第一个标签的设置已经在我的全新标签中设置。
    • 你到底想做什么。如果您在会话中放置一些变量,则只有该会话能够访问它,而不是每个人。
    • 这就是我的意图。我希望此设置对单个用户/选项卡/窗口“坚持”,只要他们留在页面上或直到他们手动更改它。我看到的是,当我从第一个选项卡设置属性时,我的第二个选项卡可以“刷新”他们的页面并查看它们的状态变化以反映第一个选项卡的作用。
    猜你喜欢
    • 2010-11-24
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    相关资源
    最近更新 更多