2013-04-29 44 views
0

您好我正在做一些非常簡單的事情,但它不工作我正在使用jboss和jsf 2.0。 所以我試圖創造一種形式,它是根據從下拉菜單中的用戶,所以我用selectOneMenu用於參數處理失敗,當我選擇

<h:panelGrid columns="2" id="formTaxon"> 
       <h:outputLabel value="Nombre Científico Taxón" for="taxonInput" /> 
       <p:inputText value="#{taxonDM.taxon.nombreCientificoTaxon}" 
        id="taxonInput" /> 
       <h:outputLabel value="Nombre Común" for="nombreComunInput" /> 
       <p:inputText value="#{taxonDM.taxon.nombreComunTaxon}" 
        id="nombreComunInput" /> 
       <h:outputLabel value="Tipo" for="tipoTaxon" /> 
       <p:selectOneMenu id="tipoTaxon" value="#{taxonDM.taxon.tipoTaxon}" 
        name="tipoTaxon"> 
        <f:selectItem itemLabel="Seleccione uno" itemValue="" /> 
        <f:selectItems value="#{tipoTaxonDM.tiposTaxones}" var="txn" 
         itemValue="#{txn.idTipoTaxon}" itemLabel="#{txn.nombreTipo}" /> 
        <f:ajax process="@this" 
         listener="#{taxonController.tipoTaxonesXX}" render="formTaxon" /> 
       </p:selectOneMenu> 
       <p:inputText id="test" val="" /> 
      </h:panelGrid> 

選擇我也試過不聽者第一

但沒有任何工程的一些領域,我沒有得到我得到一個錯誤的服務器上的任何錯誤,當我檢查腳本與螢火蟲

<?xml version='1.0' encoding='UTF-8'?> 
<partial-response><error><error-name>class java.lang.IllegalStateException</error-name><error-message><![CDATA[Parameters processing failed.]]></error-message></error></partial-response> 

我測試了一個JBoss 7.0.2和7.1.1與Firefox。我讀過IE和jboss 7.1.1之間的一個錯誤,但我想這不是這種情況。

我也試着用h:selectOneMenu代替p:selectOneMenu。沒有變化。

回答

1

當您的項目值爲idTipoTaxon時,您將下拉框的值作爲taxon.tipoTaxon<p:selectOneMenu id="tipoTaxon" value="#{taxonDM.taxon.tipoTaxon}">進行綁定。

據我們所知,前者的型號爲TipoTaxon,後者型號爲Integer,極有可能。所以當JSF試圖在這些類型之間進行轉換時,它就會失敗。

你需要或者提供一個Converter,使JSF會知道如何提交字符串轉換爲模型對象(你可以在這裏找到很多例子,在Stack Overflow)或綁定下拉值爲整數,以及像value="#{taxonDM.taxon.idTipoTaxon}"

+0

是的,我很愚蠢,它更有意義,我從來沒有綁定一個值,然後我會猜測必須閱讀更多。 – 2013-04-30 03:33:55

+0

不客氣。閱讀和自我肯定是成功的關鍵。 – skuntsel 2013-04-30 06:43:44