-2

バッキング Bean からコンポーネントを追加する必要があります。マネージド Bean に文字列があり、すべての jsf コンポーネントが文字列として含まれます。UI では、コンポーネントとしてレンダリングする必要があります。私のマネージドBeanコーディングは

String htmlContent = "<h:inputText/>";

public String getHtmlContent()
{
   return this.htmlContent;
}

XHTMLコーディングは

<h:outputText value="#{managedBean.htmlContent}" escape = "false"/>

のような htmlContent で Html タグを使用する場合

String htmlContent = "<input type='text'/>;

私のロジックは正常に動作します。その文字列で jsf タグを使用すると、JSF コンポーネントはそのままレンダリングされます。Html としてレンダリングされません。

最後に、すべての Jsf タグが html タグに変換されることを知っています。ui:composition と ui:include 以外の jsf タグの動的レンダリングを処理する方法はありますか?

前もって感謝します..

4

1 に答える 1

1

あなたの解決策は悪い考えだと思います。私が理解しているように、あなたはバッキングBeanであなたの見解の一部を生成したいと思っています。モデル/コントローラーをビューと混在させようとしないでください。これの代わりに、ビューにデータを<h:panelGroup/>追加してrenderedタグを追加するだけで、レンダリングするかどうかを制御できます。

私はこのようにします:

@ManagedBean
@ViewScoped
public class MyBackingBean {
    private boolean renderPieceOfView;
    // getter and setter for renderPieceOfView
}

見る

<h:panelGroup rendered="#{myBackingBean.renderPieceOfView}">
    ... this will be rendered or not ...
</h:panelGroup>

また、に配置されるテンプレートファイルを作成することもできます... this will be rendered or not ...

<h:panelGroup rendered="#{myBackingBean.renderPieceOfView}">
    <ui:include src="#{templateFactory.currentViewPath}" />
</h:panelGroup>
于 2013-03-18T13:33:40.843 に答える