dialogframeworkで開いたダイアログから帰ってきた値で画面上の項目を更新したいので以下のように記述した。
<p:ajax event="dialogReturn" listener="#{hoge.fuga}" process="comp" update="comp" />
同画面に"comp"というidを持つコンポーネントが存在し、"hoge.fuga"というメソッドの中で"comp"の値を変更している。
が、この記述では値が更新されない。
原因は実行順で、
listener
processによるpost
update
の順番になる。
listenerで更新した値がprocessによって変更前の値で上書きされてしまうので変更されていないように見える。
hoge.fugaの中でcompの値を使いたい場合はダイアログを呼び出すボタンなどのprocessにcompを記述すればいい。
感覚としてはprocess、listener、updateの順番だと思うけど…
p:ajaxにprocessを記述できる意味もなくなってるし変な仕様。