2012-07-09 47 views
0

接取吉斯會話範圍在jsp中我是新來吉斯DI框架 在Spring中,我們可以使用EL如何使用EL

sessionScope['scopedTarget.sessionService'].loggedUser 

訪問會話範圍變量,但我怎麼能做到這一點的吉斯?

回答

1

如果您選擇使用Guice's Servlet extension,您應該能夠自動綁定HttpSession或提供者<HttpSession>。

在你的類,你會把這樣的事情:

private final MyDependency dependency; 
private final Provider<HttpSession> sessionProvider; 

@Inject 
public MyClass(MyDependency dependency, Provider<HttpSession> sessionProvider) { 
    this.dependency = dependency; 
    this.sessionProvider = sessionProvider; 
} 

void callMyService() { 
    HttpSession session = sessionProvider.get(); 
    String myValue = (String) session.get("value"); 
    // ... 
} 

提供商是內置的界面,讓你從注入新鮮的實例。如果Foo級別被綁定,您可以始終注入Provider <Foo>,無需任何額外的工作。在這裏,注入提供者是個好主意,因爲你寫的類可能比任何給定的會話活得更長。