Friday, May 11, 2012

f:setpropertyactionlistener not working

版本:primefaces 3.0,  JSF 2.0

source code

   1: <p:commandButton value="明細" oncomplete="openJavaScript_Dialog();" >
   2:     <f:setPropertyActionListener value="#{ item.master }"  target="#{ controller.dto}" />
   3: </p:commandButton>
   4:  

錯誤原因:一直沒有辦法讀取 controller 的 setDto 方法,只會在開啟另一個xhtml,讀取到 空的 getDto,出現 null exception

解法:在 p:commandButton 加 update=”@this” 的屬性



   1: <p:commandButton value="明細" oncomplete="openJavaScript_Dialog();" update="@this" >
   2:     <f:setPropertyActionListener value="#{ item.master }"  target="#{ controller.dto}" />
   3: </p:commandButton>