2017-10-10 14 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

私の答えはあなたの問題を解決しましたか?もし解決すれば、私の仲間のために私の答えを受け入れることもできます** ** **ユーザー。 –

答えて

2

これは、クラスパスにサーブレットの依存性がないためです。

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

あなたのHttpSessionHttpServletRequestからを取得することができます。私は、スクリーンショットを添付しました。 req.getSession(false)は、すでに作成されている場合はHttpSessionオブジェクトを返し、そうでない場合はnullを返します。 req.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)btwでもそれを言いました。 :) –

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

あなたは時間を比較することができます:)私の答えはあなたの前に投稿されました –

関連する問題