0

spring MVC を使用して Web アプリケーションを開発しています。これでセッション管理を行う方法の簡単な例が欲しいだけです。多くのフォーラムを見てきましたが、これを明確に把握することはできません

私の要件は

すべてのコントローラーと JSP でアクセスできるようにしたいオブジェクトがあります。それをコントローラーで設定し、JSP で取得したいと考えています。

私は次のようなものを探しています

    Session.setAtribute(); 

非常に簡単な例を教えてください。ありがとうございました

4

2 に答える 2

2

Spring MVC でサーブレット セッションにアクセスするには、さまざまな方法があります。しかし、これがあなたの問題に最も適したものだと思います。必要な情報を保持するセッション スコープ Bean を作成できます。

@Component("myObjectHolder")
@Scope(WebApplicationContext.SCOPE_SESSION)
public class MyObjectHolderImpl implements MyObjectHolder {

    private long userId;
    private String username;
    private Theme theme;

    // Getters & Setter
}

次に、他の Bean からアクセスできます。

@Controller
public class MyController {

    @Autowired private MyObjectHolder myObjectHolder;

    @RequestMapping
    public ModelAndView switchTheme(String themeId) {
        ...
        Theme newTheme = themeService.get(themeId);
        myObjectHolder.setTheme(newTheme);      
        ...
    }

}

ビューから直接アクセスすることもできますが、構成する必要があります。

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    ...
    <property name="exposedContextBeanNames" value="myObjectHolder" />
</bean>

そしてあなたのJSPで:

Hi ${myObjectHolder.username}, you switched 
application theme to ${myObjectHolder.theme.name}
于 2012-08-01T16:44:34.957 に答える
1

HttpSession最も簡単な方法は、ハンドラー メソッドに挿入して直接アクセスすることです。

@RequestMapping("/page")           
public ModelAndView page(HttpSession session) {           
    session.getAttribute("foo");
}
于 2012-08-01T16:38:39.440 に答える