2017-10-10 76 views
2

我在Spring MVC項目中有一個控制器類。我的代碼如下:無法訪問Spring MVC中的HttpSession @Controller類

@Controller 
public class MainController { 

@RequestMapping(value = "/doLogin") 
public String login(@RequestParam("email") String email, @RequestParam("pwd") String password, Model model){ 
    //some code 
    } 
} 

我想通過HttpSession作爲方法參數,但我無法訪問HttpSession。我附上了截圖: enter image description here

+0

我的答案是否解決了您的問題?如果解決了,那麼你也可以接受我的回答** SO **用戶。 –

回答

2

這是因爲您的類路徑中沒有servlet api依賴項。

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>javax.servlet-api</artifactId> 
    <version>3.1.0</version> 
</dependency> 
2

你可以從HttpServletRequest得到你的HttpSessionreq.getSession(false)返回一個HttpSession對象,如果已經創建,則返回nullreq.getSession(true)檢查是否沒有創建會話,然後返回一個新的而不是null。 N.B:也讓你的那個javax servlet api jar添加到你的班級路徑中。

@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 
    } 
} 
+0

不幸的是,這不是我的實際問題。我甚至不能在任何方法中使用HttpSession。我在導入javax.servlet jar庫後解決了這個問題 – Joshgun

+0

我也在最後一行(N.B)中說過它。 :) –

1

您的項目中需要有java servlet。將此添加到您的pom.xml中

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>servlet-api</artifactId> 
    <version>2.5</version> 
    <scope>provided</scope> 
</dependency> 
+0

我已經發布了相同的答案 –

+0

我剛剛看到您的帖子之前發佈它! –

+0

您可以比較時間:)我的回答已張貼在您的 –