2014-10-06 124 views
0

我迷路了。我研究了几乎每个关于setPropertyListener的帖子,我不知道自己做错了什么。我有这样的JSF页面:f:setPropertyActionListener没有设置属性

<ui:define name="content"> 
    <h:form id="itemSearchForm"> 
     <p:commandButton update=":itemForm" 
         icon="ui-icon ui-icon-search"> 
      <f:setPropertyActionListener target="#{itemDetailManagedBean.itemId}" 
             value="test"/> 
      <f:setPropertyActionListener target="#{itemDetailManagedBean.accountType}" 
             value="test"/> 
     </p:commandButton> 
     <p:dataTable id="itemList" 
        paginator="true" 
        var="currentItem" 
        value="#searchItemManagedBean.searchItems}"> 
      . 
      . 
      <p:column headerText="Detail"> 
       <p:commandButton update=":itemForm" 
           oncomplete="PF('itemDetail').show()" 
           icon="ui-icon ui-icon-search"> 
        <f:setPropertyActionListener target="#{itemDetailManagedBean.itemId}" 
               value="test"/> 
        <f:setPropertyActionListener target="#{itemDetailManagedBean.accountType}" 
               value="test"/> 
       </p:commandButton> 
      </p:column> 
     </p:dataTable> 
    </h:form> 
</ui:define> 

和itemDetailManagedean:

public class ItemDetailManagedBean implements Serializable{ 

    private String itemId,accountType; 

    public ItemDetailManagedBean() { 
    } 

    public SearchForItemBean getSearchBean() { 
     return searchBean; 
    } 

    public String getItemId() { 
     return itemId; 
    } 

    public String getAccountType() { 
     return accountType; 
    } 

    public void setItemId(String itemId) { 
     this.itemId = itemId; 
    } 

    public void setAccountType(String accountType) { 
     this.accountType = accountType; 
    } 


} 

的问题是,第一个CommandButton工作,因为它应该(因此它设置的属性右)。但第二个commandButton根本不起作用。这两个按钮都显示对话框,因为它们应该。我在页面的其他部分有itemForm。

+0

你是什么意思第二个commandButton不起作用?它设置了不正确的值,或者将null设置为变量。 – wittakarn 2014-10-07 01:42:55

回答

0

最后得到了溶剂。问题实际上不在JSF中,而是在ServiceBean中,它在加载期间更改了数据表内容。

+0

你做了什么来解决它? – StudioWorks 2015-07-28 12:59:57

+0

我必须将结果存储到@PostConstruct方法的属性中,并且getter只返回“缓存”属性。 – 2015-10-23 14:19:26

相关问题