2

JSF1.2を使用してカスタムコンポーネントを開発しています。私のタグクラスは拡張UIComponentELTagされ、タイプの変数がありますValueExpression。これらの値は、たとえば、タグの対応する属性から(setProperties関数を使用して)設定されます。

<sr:show name="#{backingBean.name}" ...> #{backingBean.mainContent}</sr:show>

タグのbodyContentをバインディング値として取得しようとするとスタックします。これは私が進んだところです:

public int doAfterBody() throws JspException{
    if(bodyContent!=null) {
        String body = bodyContent.getString();
        FacesContext context = FacesContext.getCurrentInstance();
        UIComponent component = super.findComponent(context);
        MyComp myComp= (MyComp) component;
        myComp.setMain(body);
    }
    bodyContent.clearBody();
    return SKIP_BODY;
}

タグの本体にバインディング値が含まれていない場合、このコードは正常に機能します。ボディにバインディング値があるかどうかを確認してから、Beanから値を設定したいと思います。

JSF 1.1では、を使用してこれを確認しisValueReference(body)ました。JSF 1.2でこれを達成するにはどうすればよいですか?ボディコンテンツをバインディング値として取得する例はどこにも見つかりませんでした。

4

1 に答える 1

1

「contents」などの別の変数を単純に追加して、それをレンダリングしたい本文テキストにバインドしてみませんか?

<sr:show name="#{backingBean.name}" text="#{backingBean.mainContent}" />

または単に:

<sr:show bean="#{backingBean} />

全体をレンダリングします。

于 2009-03-21T12:01:15.680 に答える