我是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";
}
}