2012-07-09 29 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>,无需任何额外的工作。在这里,注入提供者是个好主意,因为你写的类可能比任何给定的会话活得更长。