我正在尝试编写一个简单的创建用户页面。我希望用户能够输入所需的用户名,如果用户名已被使用,则会显示输出文本并显示“用户名已在使用中”。
这是我的 xhtml 页面
<tr>
<td>Username: </td>
<td>
<p:inputText id="username" value="#{createUserManagedBean.username}" required="true" requiredMessage="Username is required.">
<p:ajax event="keyup" update="uniqueUsernameMessage"/>
</p:inputText>
</td>
<td>
<h:outputText id="uniqueUsernameMessage" value="Username already in use" rendered="#{!createUserManagedBean.checkUniqueUsername()}" />
</td>
</tr>
这是我的托管 bean
public boolean checkUniqueUsername()
{
if(!StringUtils.isBlank(getUsername()))
{
UserDTO userDTO = new UserDTO();
userDTO.setUsername(username);
boolean result = getUserService().validateUniqueUsername(userDTO);
return result;
}
else
return false;
}
我的问题是每个 keyup 事件的消息都没有更新。正在调用服务,但元素没有根据方法结果更改是否显示。