-1

私の(JSF、Servlet 3.0)セッションスコープ内には、クラスのインスタンスがあります。sessionscope で提供されている名前を使用してクラスのインスタンスを取得するにはどうすればよいですか?

たとえば、私のセッションには MyBean のインスタンスがあります。

classes-ManagedBean-class com.MyBean=Bean: Managed Bean [class com.MyBean] with qualifiers [@Any @Default @Named]; Instance: com.MyBean@40a6d41f

Java コードでは、MyBean の実際のインスタンスを取得したいと考えています。

HttpSession session = us.getHttpSession();
MyBean mybean = (MyBean) session.getAttribute("???");

「???」にはどの値を指定すればよいですか

4

2 に答える 2

0

これはあなたが何をしたいのか:

FacesContext context = FacesContext.getCurrentInstance();
MyBean mybean =  (MyBean) context.getExternalContext().getSessionMap().get("myBean");

myBeanは管理対象Beanの名前であることに注意してください

たとえば@ManagedBean(name = "myBean ")、no(name = "myBean ")が指定されている場合、デフォルトはクラス名と同じになり、最初の文字は小文字になります

于 2012-10-15T12:28:29.017 に答える
0

上記は SessionMap から取得されます。セッションマップにキーを明示的に追加することで回避策を作成しました。今それは動作します

于 2012-10-15T13:38:07.160 に答える