无法在 Spring MVC @Controller class 中访问 HttpSession
Can't access HttpSession in Spring MVC @Controller class
我在 Spring MVC 项目中有一个控制器 class。我的代码如下:
@Controller
public class MainController {
@RequestMapping(value = "/doLogin")
public String login(@RequestParam("email") String email, @RequestParam("pwd") String password, Model model){
//some code
}
}
我想将 HttpSession 作为方法参数传递,但我无法访问 HttpSession。我附上了截图:
您可以从 HttpServletRequest
获得您的 HttpSession
。 req.getSession(false)
returns 如果已经创建了一个 HttpSession
对象,如果没有则返回 null
。 req.getSession(true)
检查是否没有创建会话,然后返回一个新会话而不是 null
。
N.B: 同时将你的 javax servlet api jar 添加到你的 class 路径中。
@Controller
public class MainController {
@RequestMapping(value = "/doLogin")
public String login(HttpServletRequest req, @RequestParam("email") String email, @RequestParam("pwd") String password, Model model){
HttpSession session = req.getSession(false);
//some code
}
}
这是因为您的类路径中没有 servlet api 依赖项。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
您的项目中需要 java servlet
。将此添加到您的 pom.xml
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
我在 Spring MVC 项目中有一个控制器 class。我的代码如下:
@Controller
public class MainController {
@RequestMapping(value = "/doLogin")
public String login(@RequestParam("email") String email, @RequestParam("pwd") String password, Model model){
//some code
}
}
我想将 HttpSession 作为方法参数传递,但我无法访问 HttpSession。我附上了截图:
您可以从 HttpServletRequest
获得您的 HttpSession
。 req.getSession(false)
returns 如果已经创建了一个 HttpSession
对象,如果没有则返回 null
。 req.getSession(true)
检查是否没有创建会话,然后返回一个新会话而不是 null
。
N.B: 同时将你的 javax servlet api jar 添加到你的 class 路径中。
@Controller
public class MainController {
@RequestMapping(value = "/doLogin")
public String login(HttpServletRequest req, @RequestParam("email") String email, @RequestParam("pwd") String password, Model model){
HttpSession session = req.getSession(false);
//some code
}
}
这是因为您的类路径中没有 servlet api 依赖项。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
您的项目中需要 java servlet
。将此添加到您的 pom.xml
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>