2011-05-24 62 views
1

請看看下面的代碼。函數generateCoupon從不被調用。 processCouponGeneration和userPageBacking在viewScope中,但headerBacking在requestScope中。嘗試改變primefaces p:commandButton到h:commandButton,但它不起作用。 如果我將headerBacking.currentUser複製到viewScoped變量,使用c:set;使用這個變量而不是headerBacking.currentUser,函數generateCoupon被觸發。所以,想確認這是否是預期的行爲。這些都是JSF困擾我的問題,我不知道是否可以調試。JSF中的限制viewScope

<p:commandButton value="Correct" 
    action="#{processCouponGeneration.generateCoupon}"> 
    <f:setPropertyActionListener 
     target="#{processCouponGeneration.bpd}" 
     value="#{userPageBacking.selectedPromoToDisplay.wupdBrandpromo}" /> 
    <f:setPropertyActionListener 
     target="#{processCouponGeneration.bpdd}" 
     value="#{bpddVar}" /> 
    <f:setPropertyActionListener 
     target="#{processCouponGeneration.promoter}" 
     value="#{userPageBacking.user}" /> 
    <f:setPropertyActionListener 
     target="#{processCouponGeneration.buyer}" 
     value="#{headerBacking.currentUser}" /> 
</p:commandButton> 

回答

0

它應該工作。確保你擁有你管理的所有bean中的所有getter和setter。

+0

任何缺少的getter/setter都會產生清晰的自我描述EL異常,而不是「無所事事」。 – BalusC 2011-08-04 18:25:57

+0

但是,我不認爲這是任何ViewScope問題,因爲我嘗試了它,並且調用了該方法。 – 2011-08-04 18:28:32

+0

這是正確的。沒有OP的進一步細節,這個問題顯然是無法回答的。這就是爲什麼到現在爲止沒有人回答這個問題)爲什麼這個問題得到了2點讚賞,這只是遠遠超出了我的觀點。 – BalusC 2011-08-04 18:29:04