質問

私が今日持っている問題はJSFと、含まJSPでHTMLを扱うについてです。 だからここの状況だ:私は、タブを使用する(同社層からの)カスタムコンポーネントを持っているのWebsphere V6.1でRADにIBMによってJSF 1.2を使用します。 そして、クリーンなコードを持っているために、私はちょうど、分離JSP、このように各タブのJSFコードを分けたい、main.jspます:

<customTag:tabComponent>
<jsp:include page="/jsp/workflow/tab1.jsp"></jsp:include>
<div align="right">
    <customTag:switchToTab title="Next" tabValue="2"></customTag:switchToTab>
</div>
</customTag:tabComponent>

そして、私のtab1.jspます:

<!-- Taglibs declared here -->
<f:verbatim>
<div id="myDivId">
    <fieldset>
        <legend>myLegend</legend>
        <h:outputText value="#{myBean.someContent}"></h:outputText>
        <!-- HERE are a lot of JSF components, selectItems, inputText... -->
    </fieldset>
</div>
</f:verbatim>

JSFコンポーネントが処理されますので、しかし、HTMLの後に処理しているように見えるとJSFによって生成されたHTMLの外で、後に表示されます。

のようなもの
<table>
    <!-- generated content -->
</table>
<div id="myDivId">
...

の表は、divの内側にあるべきです。私は<f:verbatim>タグ異なる方法を使用することを試みたが、唯一の解決策は汚れていると、WebSphereは発狂なりそのまま開閉タグにより<div></div>を取り囲むようにします。

Googleは、関連する何かを見つけることができませんでしたので、皆さんはすでに同じ問題に遭遇しましたか?それはきれいな解決策を見つけるか、私は同じJSP内のすべての私のコードを含める必要が行うことは可能ですか?事前に感謝します。

役に立ちましたか?

解決

まず第一に、それは従来のJSF 1.0 / 1.1行動として認識可能です。 f:verbatimは確かにJSFコンポーネントツリーにテンプレートのテキストを取る必要がありました。しかし、f:verbatimは自動的にコンポーネントツリーにf:view内の任意のテンプレートテキストを取る2006年のJSF 1.2の新しいビューハンドラ以来、完全に不必要です。したがって、あなたは本当にのJSF 1.2を使用してをしていますか? Websphere 1.2への組み込みJSF 1.1ライブラリやアップグレードで6.1船がちょうど/WEB-INF/libでLIBSを配置するのと同じくらい簡単ではありません。

あなたの実際の問題に、あなたはないworthfully JSFコンポーネント、f:verbatimとののみのテンプレートテキストをラップする必要があります。したがって、以下の作業をする必要があります:

<f:verbatim>
    <div id="myDivId">
        <fieldset>
            <legend>myLegend</legend>
</f:verbatim>
<h:outputText value="#{myBean.someContent}"></h:outputText>
<!-- HERE are a lot of JSF components, selectItems, inputText... -->
<f:verbatim>
        </fieldset>
    </div>
</f:verbatim>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top