2011-10-12 10 views
11

sto ottenendo il seguente errore sulla mia pagina facelet, che consiste semplicemente di un IceFaces form con due campi e due pulsanti:Il componente del modulo deve avere un UIForm nella sua discendenza. Suggerimento: racchiudere i componenti necessari entro <h:form>

Il componente modulo deve avere un UIForm in la sua discendenza. Suggerimento: racchiudere i componenti necessari entro < h: form >

Qui è la forma:

<ice:form id="form1" partialSubmit="false"> 
    <ice:panelLayout id="panelLayout3"> 
     <ice:graphicImage id="graphicImage1" url="/resources/images/LoginImage.jpg" width="560" /> 
     <ice:outputLabel for="j_username" id="outputLabel1" value="Username:"/> 
     <ice:outputLabel for="j_password" id="outputLabel2" value="Password:"/> 
     <ice:inputText binding="#{login.username}" id="j_username" required="true" /> 
     <ice:inputSecret binding="#{login.password}" id="j_password" required="true" /> 
     <ice:commandButton actionListener="#{login.login}" id="loginBtn" value="Login"/> 
     <ice:commandButton action="#{login.reset}" id="resetBtn" value="Reset"/> 
     <ice:outputText id="errorMessage" /> 
     <ice:message errorClass="errorMessage" for="j_username" fatalClass="fatalMessage" id="messages1" infoClass="infoMessage" showSummary="false" warnClass="warnMessage"/> 
    </ice:panelLayout> 
</ice:form> 

Come è causato e come posso risolverlo?

risposta

14

Questo non è un errore. Questo è un avvertimento. Il codice sembra a posto, tutti i componenti di input sono all'interno di un modulo, sembra che dovrebbe funzionare e funzionare correttamente. Se funziona davvero bene, basta ignorare l'avviso. Questo avviso viene visualizzato solo quando il parametro di contesto javax.faces.PROJECT_STAGE è impostato su Development.

Per quanto riguarda il messaggio di avviso falso sé, questo controllo è stato introdotto nel Mojarra 2.1.1 secondo issue 1663. Tuttavia, come da issue 2147 si scopre di avere alcuni bug ed è stato ulteriormente migliorato in Mojarra 2.1.3. Immagino che il falso avviso sia nel tuo caso particolare causato dall'avere uno <ice:panelLayout> tra il modulo e gli elementi di input.

Se non siete su Mojarra 2.1.3 ancora, si può prendere in considerazione l'aggiornamento per vedere se si rimuove il messaggio di avviso falso.

+0

sto usando JSF 2 Mojarra (API da javax.faces & impl da com.sun.faces: ' com.sun.faces jsf-api 2.1.0-b11 compilare com.sun.faces jsf-impl 2.1.0-b11 compilare ' –

+0

FYI: Sto usando JBoss AS 7.0.2.Final, che viene fornito con "Mojarra 2.1.3 (SNAPSHOT 20.110.825)" e faccio vedere questo messaggio su uno delle mie pagine. –

+0

@BalusC Esiste un modo per impedire che tali messaggi vengano visualizzati come messaggi mentre rimangono nella fase di sviluppo? Perché ho quei messaggi in tutte le mie pagine e è fastidioso progettare con questo messaggio inutile. – Ced

Problemi correlati