设置转换器属性时,PrimeFaces不会打开对话框

时间:2014-03-07 14:52:54

标签: java jsf primefaces dialog converter

我有一个页面,我通过p:commandButton打开一个对话框。当没有为p:pickList设置converter-attribute时,一切运行良好,但是当对话框拒绝打开时。

这里是xhtml(仅相关部分):

<p:dialog id="dialog" widgetVar="eventDialog" resizable="false" header="Event">

    <h:form>

        <p:panelGrid id="eventPanel" columns="2"> 

            <h:outputLabel value="Participants" />

            <p:pickList id="participants" value="#{eventBean.dualList}" var="person" 
                itemValue="{person}" showCheckbox="true" 
                converter="#{eventBean.personConverter}" showSourceFilter="true"     
                showTargetFilter="true" filterMatchMode="contains" 
                itemLabel="#{person.name}, #{person.forename}"  />

            <f:facet name="sourceCaption">Personen</f:facet>  
            <f:facet name="targetCaption">Participant</f:facet>  


            <p:commandButton value="Save" icon="ui-icon-disk"
                action="#{eventBean.saveEvent()}" onsuccess="eventDialog.hide()" 
                update="@all" ajax="false" />

        </p:panelGrid>  

    </h:form>

</p:dialog>

<h:form id="eventForm">

    <p:commandButton value="Create Event" action="#{eventBean.createEvent()}"     
        oncomplete="eventDialog.show()" update=":dialog" styleClass="spaceBottom2" />

</h:form>

和bean EventBean(仅相关部分):

@ManagedBean
@ViewScoped
public class EventBean {

    public EventBean() {    
        converter = new PersonConverter(#list of persons);
    }

    public PersonConverter getPersonConverter() {
        return converter;
    }
}

我无法弄清楚为什么它不适用于转换器,转换器可以在另一个页面中执行此操作。

1 个答案:

答案 0 :(得分:0)

根据我对PF的经验,我总是把我的变量称为getter和setter,否则我遇到了很多问题。

在您的XML中

converter="#{eventBean.personConverter}"

我可能错了,但我相信它会查找变量personConverter的getter。

但是在你的bean中你只调用变量converter。尝试将其重命名为personConverter