0

ボタンをクリックすると、中央のページをレンダリングするtoggleButtonをtrueに設定するフロントエンドコードがあります。トグルボタンをtrueに設定するためにサーバーを呼び出す代わりに、より理にかなっているため、ブラウザ内で実行したいと考えています。どうやってするか?私の現在のコードは以下のとおりです。これは、サーバーでトグル変数を設定し、ブラウザーで変更します。

現時点の

xhtml

<p:commandButton value="create" action="#{mybean.showCreateForm}" />

<p:panel render#{mybean.showForm} />

public void showCreateForm(){
showForm=true;
}

する必要がある

   <p:commandButton value="create" action="#{mybean.showCreateForm}"  onclick"showform=true"/>

    <p:panel render#{mybean.showForm} />

上記の例では、createform をレンダリングする前にサーバーと通信することを示しました。PrimefacesまたはJSFのみを使用してクライアント側でそれを行うにはどうすればよいですか

4

1 に答える 1

1

それがより理にかなっているので、私はブラウザ内でそれをやりたいです。どうやってするか?

プレーンなバニラHTMLWebページで行うのと同じ方法でJavaScript/CSSを使用するだけです。CSSで使用してから、JSでdisplay:noneに切り替えます。display='block'最終的にはHTMLのみを生成するため、JSFでも違いはありません(ブラウザでJSFページを開き、右クリックして[ソースを表示])。

この方法では、JSFコンポーネントツリーがHTMLDOMツリーと同期していないことに注意する必要があります。したがって、条件付きで表示されるセクションに1つ以上のフォームが含まれている場合、フォームの表示または非表示の制限がサーバー側で強制されなくなるため、この方法では潜在的な攻撃ホールのリスクがあります。

于 2012-07-29T20:38:25.400 に答える