【问题标题】:primefaces 3.5 selectOneMenu. Error:Validation Error: Value is not valid [duplicate]primefaces 3.5 选择一个菜单。错误:验证错误:值无效[重复]
【发布时间】:2013-12-20 13:06:29
【问题描述】:

我想用另一个(d1)更新 selectOneMenu(d2),而不是 d2 组件应该更新消息框。一切正常,但是当我尝试使用带有更新值的 selectOneMenu (d2) 时,会导致错误:“form:d2: Validation Error: Value is not valid”。

当我将“editable =”true”添加到 selectOneMenu(d2) 时很有趣,一切正常。

我的页面:

<h:form id="form">  
                <p:growl id="msgs" /> 

                <p:selectOneMenu id="d1" value="#{jSFManagedBean.d1SelectedItem}" effect="fold"   
                                  filter="true" filterMatchMode="contains">
                    <f:selectItem itemValue="" itemLabel="Select one" />
                    <f:selectItems value="#{jSFManagedBean.d1ItemList}" />  
                    <f:ajax event="change"    listener="#{jSFManagedBean.generateD2List()}" render="d2" />  
                </p:selectOneMenu>    


                <p:selectOneMenu id="d2" value="#{jSFManagedBean.d2SelectedItem}" >
                    <f:selectItem itemValue="" itemLabel="Select one1" />
                    <f:selectItems value="#{jSFManagedBean.d2ItemList}" /> 
                    <f:ajax event="change"    listener="#{jSFManagedBean.addInfo()}" render="msgs" />  

                </p:selectOneMenu> 

</h:form>

jSFManagedBean:

@ManagedBean
@RequestScoped
public class JSFManagedBean 
{
    public void addInfo() 
    {  
        System.out.println("Add Info D1: " +  D1SelectedItem + "  D2: " + D2SelectedItem );
    }
    ....
}

d1ItemList 创建于:

@PostConstruct
public void init()
{
    System.out.println("INIT");
     if (dana1Facade.findAll().size() < 1)
     {
                 for (int i = 0 ; i < 10  ; i ++)
        {
            Entities.Dana1 d1 = new Entities.Dana1();
            //d1.setId(1l);
            d1.setPozycja("Pozycja " + i);
            dana1Facade.create(d1);
        }
     }
....
}

d2ItemList 创建于:

public void generateD2List()
{   
    d2ItemList = new ArrayList<String>();

    d2ItemList = dana2Facade.getDana2Pozycja(Integer.parseInt(D1SelectedItem.substring(0, 1)));//Integer.parseInt(D1SelectedItem.substring(0, 1))

}

【问题讨论】:

    标签: validation jsf netbeans primefaces


    【解决方案1】:

    改变

     <f:ajax event="change" listener="#{jSFManagedBean.generateD2List()}"
        render="d2" />  
    

     <f:ajax event="change" listener="#{jSFManagedBean.generateD2List()}"
        update="d2" />  
    

    看看是否有帮助。

    【讨论】:

    • 更新在 primefaces(
    猜你喜欢
    • 2012-05-13
    • 2011-10-29
    • 2013-01-06
    • 2011-09-13
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    相关资源
    最近更新 更多