簡単なユーザー作成ページを作成しようとしています。ユーザーが目的のユーザー名を入力できるようにしたいのですが、ユーザー名が既に使用されている場合は、出力テキストが表示され、「ユーザー名は既に使用されています」と表示されます。
ここに私の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;
}
私の問題は、キーアップ イベントごとにメッセージが更新されないことです。サービスが呼び出されましたが、メソッドの結果に応じて要素が表示されるかどうかが変化しませんでした。