如何使用el访问jsp中的guice会话范围

时间:2012-07-09 14:53:11

标签: jsp guice

我是DI Framework的新手 在Spring中,我们可以使用el

访问会话范围变量
sessionScope['scopedTarget.sessionService'].loggedUser

但我怎么能用guice做到这一点?

1 个答案:

答案 0 :(得分:1)

如果您选择使用Guice's Servlet extension,您应该能够绑定HttpSession或Provider< 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&lt; Foo&gt;没有任何额外的工作。在这里,注入提供者是个好主意,因为你写的课程可能比任何给定的课程都要长。