我的网络应用程序有问题。我似乎在自动填写我的用户名和密码字段。登录后还可以,问题是即使我将自己的textFields(InputText)命名为其他名称,即使在创建帐户页面中仍然可以自动填充。我在chrome和firefox中都尝试过,但还是一样。
这是该应用程序和代码的一些屏幕截图。
对于创建帐户页面
<p:outputLabel id="userLabel" value="Username*" />
<p:inputText id="userField"
value="#{marketingPersonController.marketingPerson.account.username}"
required="true" requiredMessage="Username* value is required."
label="UsernameInput">
<f:ajax
listener="#{marketingPersonController.checkUsernameIfAvailable()}"/>
</p:inputText>
<p:outputLabel id="passLabel" value="Password*"/>
<p:password id="passField"
value="#{marketingPersonController.marketingPerson.account.password}"
feedback="true" inline="true"
match="confirmPassField" required="true"
requiredMessage="Password* value is required" label="PasswordInput"
validatorMessage="Password must be at least 6 characters / Password does not match">
<f:validateLength minimum="6" />
</p:password>
对于我的登录
这是我的登录代码:
<table>
<tr>
<td><p:outputLabel rendered ="#{!accountController.loggedIn}" value ="Username:"/></td>
<td><p:inputText rendered="#{!accountController.loggedIn}" id="username" value="#{accountController.account.username}"/></td>
<td><p:message for="username" rendered ="false"/></td>
</tr>
<tr>
<td><p:outputLabel rendered="#{!accountController.loggedIn}" value="Password:"/></td>
<td><p:password rendered="#{!accountController.loggedIn}" id="password" value="#{accountController.account.password}"/></td>
<td><p:message for="password" rendered ="false"/></td>
</tr>
最佳答案
您需要关闭自动填充功能,但是jsf没有自动填充属性。因此,这意味着您必须基于每个输入将其关闭或为UIForm编写自定义渲染器。
当前存在一个未解决的问题,要求将此属性添加到:JSF spec418。当前,它计划在JSF 2.2中使用。
同时,您可以使用OmniFaces Html5RenderKit获得对组件上的autocomplete =“ off”的支持。