Spring 如何使用在mvc控制器中使用@Scope(“session”)保存的jsp页面中会话变量的值
使用SpringMVC做一个网站。我添加了一个SignupController来处理所有与注册相关的请求。一旦用户注册,我将使用@Scope(“session”)将其添加到会话中。下面是注册控制器代码 SignupController.java 我正在使用“sessionUser”变量来存储已注册的用户Id。我的理解是,当我为控制器使用@Scope(“会话”)时,所有实例变量都将添加到HttpSession。因此,通过这种理解,我尝试访问userHomePage.jsp中的“SessionUser”,如下所示: userHomepage.jspSpring 如何使用在mvc控制器中使用@Scope(“session”)保存的jsp页面中会话变量的值,spring,spring-mvc,Spring,Spring Mvc,使用SpringMVC做一个网站。我添加了一个SignupController来处理所有与注册相关的请求。一旦用户注册,我将使用@Scope(“session”)将其添加到会话中。下面是注册控制器代码 SignupController.java 我正在使用“sessionUser”变量来存储已注册的用户Id。我的理解是,当我为控制器使用@Scope(“会话”)时,所有实例变量都将添加到HttpSession。因此,通过这种理解,我尝试访问userHomePage.jsp中的“SessionUse
欢迎来到这里
但它抛出空值
所以我的问题是如何使用jsp页面中会话变量的值,这些值是在mvc控制器中使用@Scope(“session”)保存的
注意:我的工作是通过ModelAndView将签名用户Id传递给jsp页面,但在页面之间传递类似于这些的值似乎会让我回到使用QueryStrings来管理页面之间的状态。我从未尝试过spring与jsp的集成,因为我一直在使用jsf,但我想尝试一下: 第一:为感兴趣的属性(控制器)添加getter和setter 然后:在jsp中调用它,如下所示:
Welcome to ${session.sessionUser}
这对你有用吗?:)如果没有,我会尝试:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
...
Welcome to <c:out value="${session.sessionUser}" />
...
欢迎来到
当您为控制器指定@Scope(“session”)时,Spring现在将确保每个会话都有一个唯一的控制器实例,因此您将能够将特定于会话的状态(如sessionUser)作为实例变量
但是,要向UI公开变量,该变量必须是模型/会话属性的一部分,您可以使用@ModelAttribute(“sessionUser”)或@SessionAttribute(“sessionUser”)来实现
谢谢你的回答。不走运…:-(…我仍然看到空值谢谢你的回答。它现在起作用了,我开始探索@SessionAttribute。
@Controller
@Scope("session")
public class SignupController {
...
private String sessionUser;
public void setSessionUser(String sessionUser) {
this.sessionUser = sessionUser;
}
public String getSessionUser() {
return this.sessionUser;
}
...
Welcome to ${session.sessionUser}
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
...
Welcome to <c:out value="${session.sessionUser}" />
@Controller
@SessionAttribute("sessionUser")
public class SignupController {
@RequestMapping("/SignupService")
public ModelAndView signUp(@RequestParam("userid") String userId,
@RequestParam("password") String password,@RequestParam("mailid") String emailId, Model model){
...
try {
signUpService.registerUser(userId, password,emailId);
sessionUser = userId; //adding the sign up user to the session
model.addAttribute("sessionUser", sessionUser);
return new ModelAndView("userHomePage","loginResult","Success");
//Navigate to user Home page if everything goes right
....
}
}