Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 如何使用在mvc控制器中使用@Scope(“session”)保存的jsp页面中会话变量的值_Spring_Spring Mvc - Fatal编程技术网

Spring 如何使用在mvc控制器中使用@Scope(“session”)保存的jsp页面中会话变量的值

Spring 如何使用在mvc控制器中使用@Scope(“session”)保存的jsp页面中会话变量的值,spring,spring-mvc,Spring,Spring Mvc,使用SpringMVC做一个网站。我添加了一个SignupController来处理所有与注册相关的请求。一旦用户注册,我将使用@Scope(“session”)将其添加到会话中。下面是注册控制器代码 SignupController.java 我正在使用“sessionUser”变量来存储已注册的用户Id。我的理解是,当我为控制器使用@Scope(“会话”)时,所有实例变量都将添加到HttpSession。因此,通过这种理解,我尝试访问userHomePage.jsp中的“SessionUse

使用SpringMVC做一个网站。我添加了一个SignupController来处理所有与注册相关的请求。一旦用户注册,我将使用@Scope(“session”)将其添加到会话中。下面是注册控制器代码

SignupController.java 我正在使用“sessionUser”变量来存储已注册的用户Id。我的理解是,当我为控制器使用@Scope(“会话”)时,所有实例变量都将添加到HttpSession。因此,通过这种理解,我尝试访问userHomePage.jsp中的“SessionUser”,如下所示:

userHomepage.jsp
欢迎来到这里
但它抛出空值

所以我的问题是如何使用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
       ....
}
}