Primefaces7:如何将公式输入用作函数参数

时间:2019-04-01 13:54:05

标签: jsf primefaces xhtml

我想直接使用用户输入(在处理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 :(得分:0)

原来,'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>

我不知道他们何时进行了更改,也找不到任何记录的文档,因此对于那些可能会绊脚石的人,我将自己回答这个问题。