2017-08-30 10 views
2

iは、フォーム内再描画<H:commandButtonの

<p:lightBox styleClass="imagebox " id="imageLightBox" rendered="true"> 
    <h:outputLink value="http://..../center/#{myBean.centerId}/picture" title="Bla bla bla"> 
     <h:graphicImage value="http://..../center/#{myBean.centerId}/picture" /> 
    </h:outputLink> 
</p:lightBox> 

を次のグラフィックイメージタグを持っていると私は次のprimefacesが、どのようにボタン

<p:commandButton icon="fa fa-save" value="Save" title="Save" actionListener="#{myBean.saveCenterImage()}" update="@form" > 

をできるコマンドがあるとしましょう:P <によってgraphicImageは私はグラフィック画像コマンドボタンをクリックすると再レンダリングします。

+0

実際に再レンダリングされるフォームを更新している場合、おそらくprocess = "imageLightBox"またはprocess = "@ form"が欠落している可能性があります。ちなみに、レンダリングされた属性は削除されます(明瞭性のためにそうでない限り、常にtrueです)。https://stackoverflow.com/questions/9010734/why-do-i-need-to-nest-aを参照してください。 -component-with-another-component-w/ –

+0

@MárioFernandes:process属性は、送信された値に関してサーバー上で処理されるものに対するものです。 **まだ処理されていないものを更新することはできます。 – Kukeltje

+0

何をデバッグしましたか?あなたはajaxレスポンスをチェックしましたか?それには何が含まれていますか?同じURLか新しいURLかブラウザはそれを取得しようとしていますか?結果は304ですか?私はプロセス= "imageLightBox"とプロセス= "@フォーム"を試してみました。そして、それはもっと詳しく説明してください。 – Kukeltje

答えて

3

h:graphicImageの代わりにp:graphicImageを使用し、ブラウザが画像をキャッシュしないようにcache = false属性を設定する必要があると思います。