我是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控制器。

Controller正在获取这些变量,但是我不确定该如何处理才能使此数据传入特定于会话。

我在这个主题之外进行了搜索,遇到了6个不同的选项(使用自动装配的Session范围内的bean,使用xml config和cgl-nodep库的Bean,HttpServlet属性,@ ModelAttribute,@ SessionAttribute等)。我尝试使用Session作用域的bean并定义了以下内容:

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


...但是该bean没有被锁定在会话中。我在控制器中使用@Autowire,发现会话之间仍然是同一实例,因此我显然搞砸了。

我只想保存一个怪胎!必须有101个简单的方法来执行此操作...

最佳答案

@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";
    }
}

09-19 09:38