p:graphicImageでハマったらあきらめよう

PrimeFacesのp:graphicImage、便利ではあるんだけど、バグがまだあるようです。
ちゃんと切り分けてないんで、今回ハマったのが具体的にどんなバグかまではわかってないけど、p:tabPanelでまわすのがダメなのかなー。
画像処理サーブレットを作って対応してもそれほど手間ではないので、あきらめるのも手です。


その場合、画像表示は普通にimgタグを使うことになるのですが、そうするとAjaxでの表示きりかえができなかったりするので、次のようにしてp:outputPanelで覆ってやるといいです。

<p:outputPanel id="pnl">
  <p:outputPanel rendered="#{editBean.hasImage}">
    <img src="#{editBean.imageUrl}"/>
  </p:outputPanel>
</p:outputPanel>

Ajaxで切り替えるときに、updateを指定するpanelとrenderedを記述するpanelは分けないといけないので注意。


詳しくは、あとで書く。
かもしれない。