f:setPropertyActionListener没有设置属性

时间:2014-10-06 18:49:49

标签: jsf primefaces managed-bean

我迷路了。我研究了几乎所有关于setPropertyListener的帖子,我不知道我做错了什么。我有这个JSF页面:

<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正常工作(所以它设置了正确的属性)。但是第二个命令按钮根本不起作用。两个按钮都显示对话框,因为它们应该。我在页面的另一部分有itemForm。

1 个答案:

答案 0 :(得分:0)

最后得到了解决方案。问题实际上不是在JSF中,而是在ServiceBean中,它在加载过程中更改了数据表内容。