2011-05-24 38 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