2011-10-12 14 views
11

必要的組件,我讓我的facelet頁,它只是由一個ICEfaces的上下面的錯誤有兩個字段和兩個按鈕組成:表單組件需要在其祖先中具有UIForm。建議:封閉內<h:form>

表單組件需要有一個UIForm在它的祖先。建議:<小時內包圍必要的組件:形式>

這裏是形式:

<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> 

這是怎麼造成的,我該如何解決呢?

回答

14

這不是一個錯誤。這是一個警告。代碼看起來很好,所有的輸入組件都在一個表單裏,看起來它應該運行並且工作正常。如果確實可以正常工作,請忽略警告。此警告僅在上下文參數javax.faces.PROJECT_STAGE設置爲Development時纔會顯示。

至於虛假的警告信息本身,這個檢查是根據issue 1663在Mojarra 2.1.1中引入的。然而,根據issue 2147,它發現有一些錯誤,並且在Mojarra 2.1.3中進一步改進。我可以想象,由於在表單和輸入元素之間有<ice:panelLayout>而導致您的特定情況下出現虛假警告。

如果您還不在Mojarra 2.1.3上,您可能需要考慮升級以查看是否刪除了錯誤的警告消息。

+0

我使用JSF 2鑽嘴魚科(從javax.faces&IMPL API從com.sun.faces:' com.sun.faces JSF-API 2.1.0-B11 編譯 com.sun.faces JSF-IMPL 2.1.0-B11 編譯 ' –

+0

FYI:我使用JBoss AS 7.0.2.Final,其自帶的 「鑽嘴魚科2.1.3(快照20110825)」,我也看到一個此消息我的網頁。 –

+0

@BalusC在開發階段,有什麼方法可以阻止這些人被顯示爲面部信息?因爲我在我的頁面上都有這些消息,並且使用這個無用的消息進行設計很煩人。 – Ced