Primefaces <p:selectonemenu> compoment空指针异常</p:selectonemenu>

时间:2013-10-01 09:34:18

标签: jsf-2 primefaces

感谢任何建议。

我正在尝试使用primefaces组件,当我选择元素并继续由于contractid获取空指针异常,这不能为null因为我已经发起了这个。 这是代码。

<h:selectOneMenu id="ContractName" value="#{managedContract.c.contract_id}" style="width: 300px;" required="true" requiredMessage="Please Select Contract.">
    <f:selectItem itemValue="" itemLabel="-Select Contract-" noSelectionOption="true" itemDisabled="true"></f:selectItem>
    <f:selectItems value="#{managedContract.contracts}" var="contractvar" itemLabel="#{contractvar.contract_name}" itemValue="#{contractvar.contract_id}" />
</h:selectOneMenu>
public class ManagedContract{
   private int contractid;
   public managedContract(){
   this.contractid=0;


//getter

//setter

//....

}

1 个答案:

答案 0 :(得分:1)

var="contractvar" itemLabel="#{contractvar.contract_name}" itemValue="#{contractvar.contract_id}"

中删除<f:selectItems>
<h:selectOneMenu id="ContractName" value="#{managedContract.c.contract_id}" style="width: 300px;" required="true" requiredMessage="Please Select Contract.">
                                <f:selectItem itemValue="" itemLabel="-Select Contract-" noSelectionOption="true" itemDisabled="true"></f:selectItem>
                                <f:selectItems value="#{managedContract.contracts}"  />
                            </h:selectOneMenu>

并且在您的bean中,您必须拥有getContracts()方法

@ManagedBean
@ViewScoped
public class ManagedContract imlements java.io.Serializable{
   private int contractid;
   public managedContract(){
   this.contractid=0;
}

//getter

//setter

//....

}