我想直接使用用户输入(在处理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]
答案 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>
我不知道他们何时进行了更改,也找不到任何记录的文档,因此对于那些可能会绊脚石的人,我将自己回答这个问题。