私のJSFアプリケーションの1つに、上部にヘッダー部分にselectOneMenuがあり、下部にコンテンツフィルタ部分が表示されています。デフォルトでは、アプリケーションは最初のselectOneMenuデータを上部に表示し、対応するFilter情報を下部に表示します。ユーザが異なるselectOneMenuデータを選択した場合、対応するフィルタ情報を下位コンテンツ部分にロードする必要があります。JSF divコンポーネントを表示/非表示
フィルタコンポーネントにはCommandButtonがあり、ユーザーはフィルタ情報を入力します。ボタンをクリックすると、フィルターが承認されます。アプリケーションは、フィルターコンポーネントの代わりに別のコンポーネント - Report.xhtmlをロードする必要があります。つまり、フィルタコンポーネントは、下部コンテンツ部分のレポートに置き換えてください。
selectOneMenu項目をクリックすると、処理が繰り返されます。それはディスプレイのフィルター画面などです。
問題領域 1.フィルタフォームを表示できません。コンテンツパートのレポートフォームを非表示にします。 2. Filter-commandButtonのバッキングBeanは値を返します。結果に応じて、Filterの代わりにReportを表示する必要があります。
デザインが正確であるとは確信していませんが、これが意図したとおりに動作しない場合は、お勧めします。貴重な回答をいただければ幸いです。私はアプリケーションのajaxベースのままにしたいと思うし、私はボタンイベントのページ全体をリロードしたくない。
GDK
<h:form id="form1">
<h:selectOneMenu value="#{states.stateName}">
<f:selectItems value="#{states.stateChoices}"/>
<f:ajax render=":Filter"/>
</h:selectOneMenu>
</h:form>
<h:form id="Filter">
<div id="content">
<h:panelGroup id="one" rendered="Need a condition from form1 to display this">
#{states.stateName}
<br/>Report
<h:inputText id="report" value="#{Counties.report}" style="width:150px"/>
<h:commandButton id="OK" value="OK" actionListener="#{Counties.getReports}">
<f:param name="CatName" value="Dekalb" />
</h:commandButton>
</h:panelGroup>
</div>
</h:form>
<h:form id="Report">
<div id="content">
<h:panelGroup id="two" rendered="#{should be rendered on acceptance from OK command button}">
<ui:include src="Report.xhtml"/>
</h:panelGroup>
</div>
</h:form>
こんにちはBalusC、ありがとうございました。それは本当に私の問題を解決しました。私はあなたの速い応答に本当に感謝します。 (コンテンツにreport.xhtmlを表示した後、selectOneMenuアイテムをクリックすると、再びFilterが表示されます。メソッドアクション= "" で、メソッドで 'accepted'をfalseにリセットしなかったので、問題は解決しませんでした。 GDK –
GDK
こんにちはBalusC、このコード(あなたの)は、最初の繰り返しのために動作します。選択メニューをクリックすると、入力テキストとOKボタンが表示されます。 2回目以降、[OK]ボタンをクリックすると#{counties.viewReport}関数は呼び出されません。 OKボタンをもう一度クリックすると、#{counties.viewReport}関数が呼び出されます。つまり、有効にするにはOKボタンをダブルクリックする必要があります。あなたはこの行動を説明していただけますか? GDK – GDK
ボタンの押下が失敗した場合、特定のリクエスト中に 'stateName'が空であるか、' accepted'が 'false'であることを意味します。ボタンまたはその親のうちの1つのレンダリングされた属性が、要求値の適用フェーズ中に「偽」を評価するとき、アクションは呼び出されません。ただし、Beanがビュースコープである限り、これは正常に動作するはずです。後でそれらをプログラムでリセットしていませんか? – BalusC