Подтвердить что ты не робот

Компонент формы должен иметь UIForm в своей родословной. Предложение: заключить необходимые компоненты в <h: form>

Я получаю следующую ошибку на моей странице Facelet, которая просто состоит из формы IceFaces с двумя полями и двумя кнопками:

Компонент формы должен иметь UIForm в своей родословной. Предложение: заключить необходимые компоненты в < h: form >

Вот форма:

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

Как это вызвано и как я могу его решить?

4b9b3361

Ответ 1

Это не ошибка. Это предупреждение. Код выглядит хорошо, все входные компоненты находятся внутри формы, кажется, что он должен работать и работать нормально. Если он действительно работает нормально, просто игнорируйте предупреждение. Это предупреждение отображается только тогда, когда параметр контекста javax.faces.PROJECT_STAGE установлен в Development.

Что касается самого ложного предупреждения, эта проверка была введена в Mojarra 2.1.1 в соответствии с выпуском 1663. Тем не менее, согласно вопросу 2147, у него есть некоторые ошибки, и в Mojarra 2.1.3 он был улучшен. Я бы предположил, что ложное предупреждение в вашем конкретном случае связано с наличием <ice:panelLayout> между формой и элементами ввода.

Если вы еще не на Mojarra 2.1.3, вы можете рассмотреть возможность обновления, чтобы увидеть, удаляет ли это ложное предупреждение.