1

私は明らかにajax / jsfに非常に慣れていないので、失礼します。まず、richFaces のドキュメントをいくつか読んでいますが、'render' と 'reRender' の違いがまだ明確ではありません。

私が達成しようとしているのは、デフォルトで非表示/レンダリングされない2つの「領域」を持つページです。ユーザーが を選択する<h:selectBooleanCheckbox>と、この BooleanCheckbox に対応する「領域」のレンダリングがトリガーされます。これは、本来あるべきよりもはるかに多くの作業のようであり、非常に初歩的なことが欠けている可能性があります。

これが私のコードです。

<h:outputLabel for="saveNote" value="Create Note "/>            
<h:selectBooleanCheckbox id="saveNote" value="#{noteController.saveNote}" immediate="true" >            
    <a4j:support event="onchange" reRender="noteArea"/>                         
</h:selectBooleanCheckbox>
<h:outputLabel for="sendEmail" value="Send Email "/>    
<h:selectBooleanCheckbox id="sendEmail" value="#{noteController.sendEmail}" immediate="true">
    <a4j:support event="onchange" reRender="emailArea"/>                                                        
</h:selectBooleanCheckbox>

これは<h:form>

レンダリングを制御しようとしている「領域」は次のとおりです...

<h:panelGroup id="noteArea" rendered="#{noteController.saveNote}" layout="block"> 

これもh:form<h:selectBooleanCheckbox>

助けてください、Ajax が私を狂わせ始めています!

よろしくお願いします!!!!

4

1 に答える 1

0

reRender 属性は、ポストバック時にレンダリングする多数のクライアント ID になります。これは、 のサーバー ID ではなく、クライアント ID であるはずですnoteArea

h:form要素で false を指定した場合を除きprependId、フォーム ID はフォーム内の panelGroup ID の前に置かれ、一意のクライアント ID になります。

form1:noteArea

immediateまた、チェックボックスをtrueに設定したくないと思います。

于 2012-08-03T17:10:44.547 に答える