Primefaces7: Как использовать формульные входы в качестве параметров функции - PullRequest
0 голосов
/ 01 апреля 2019

Я хочу реализовать функцию входа в систему, используя ввод данных пользователем напрямую (без переменных при обработке bean-компонента).

После миграции на Primefaces код xhtml-кода больше не работает.

<h:form>        
    ...
            <h:outputLabel for="mail" value="Email:" />
            <p:inputText id="mail" value="#{mail}" required="true"/>
            <h:outputLabel for="password" value="Passwort:" />
            <p:password id="password" value="#{password}" required="true"/>

                <p:commandButton value="Anmelden" update="loginGrowl" action="#{user.login(mail.value,password.value)}"/>
           ...
    </h:form>

выдает ошибку:

WARNUNG: #{user.login(mail.value,password.value)}: javax.el.PropertyNotFoundException: /index.xhtml @43,122 action="#{user.login(mail.value,password.value)}": Property [value] not found on type [java.lang.String]

1 Ответ

0 голосов
/ 01 апреля 2019

Оказалось, что 'mail' и 'password' на самом деле являются входными строками. Поэтому будет работать следующее (JSF 2.3; PrimeFaces 7.0):

<h:form>        

        <h:outputLabel for="mail" value="Email:" />
        <p:inputText id="mail" value="#{mail}" required="true"/>
        <h:outputLabel for="password" value="Passwort:" />
        <p:password id="password" value="#{password}" required="true"/>

        <f:facet name="footer">
            <p:commandButton value="Anmelden" action="#{user.login(mail,password)}"/>
        </f:facet>


</h:form>

Я не знаю, когда они изменили это, и я не могу найти ничего задокументированного, поэтому я оставлю здесь ответ на вопрос самостоятельно для всех, кто может споткнуться.

...