Компонент формы должен иметь UIForm в своем происхождении. Предложение: заключите необходимые компоненты в <h: form> - PullRequest
11 голосов
/ 12 октября 2011

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

Компонент формы должен иметь 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>

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

1 Ответ

14 голосов
/ 12 октября 2011

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

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

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

...