0

みんな私は春にjsf2.0を使用しています。管理対象Beanのメソッドに@PostConstrucで注釈を付けましたが、Beanにjsfページに接続されたフィールドがない場合、jsfページにアクションメソッドが接続されていても@PostConstructメソッドは呼び出されません。豆。前もって感謝します。

説明用の追加コード:

これは私のBackingManagedBeanです

@ManagedBean(name="utenteBean")
@ViewScoped
public class UtenteBean extends SupportBean implements Serializable

これは私のControllerManagedBeanですが

@ManagedBean(name="gestisciUtentiController")
@ViewScoped
public class GestisciUtentiController extends MessageSupportBean implements Serializable {

@ManagedProperty(value="#{utenteBean}")
private UtenteBean utenteBean;
public void setUtenteBean(UtenteBean utenteBean) {
    this.utenteBean = utenteBean;
}

    @PostConstruct
    public void loadBean()
    {
        try
        {
            utenteBean.setUtentis(getFacadeFactory().getUtenteFacade().readAllOrdered(Utente.class, "username"));
        }
        catch (ApplicationException e)
        {
            setExceptionMessage(e.getLocalizedMessage(), e.getLocalizedMessageDetail());
        }
    }
4

1 に答える 1

0

http://blog.icefaces.org/blojsom/blog/default/2009/04/23/Making-distinctions-between-different-kinds-of-JSF-managed-beans/私はこのアプローチを使おうとしています。あなたはそのアプローチが正しくないと思いますか?–

わからない。その記事では、モデルは通常、セッションスコープに配置されると述べています。これは実際には不十分なアプローチです。リクエストスコープのBeanにセッションスコープのBeanを挿入することは、セッションスコープのBeanがたとえばログインユーザーであり、リクエストスコープのBeanがフォームにバインドされている場合に意味があります。

あなたの場合、モデルBeanをコントローラーBeanのプロパティにして、の#{gestisciUtentiController.utenteBean.someProperty}代わりに使用する必要があり#{utenteBean.someProperty}ます。

以前に「JSFデザイン」に関する質問がいくつかありましたが、それらも役立つ場合があります。

于 2011-04-22T22:41:10.040 に答える