【发布时间】:2014-06-04 02:35:14
【问题描述】:
无法在 xhtml 页面中显示面孔消息 - 它显示在控制台中。 在 forgotPassword 链接中,检查用户是否存在
<h:outputText value="Enter User Name" />
<h:inputText value="#{loginBean.technicianName}" required="true"
requiredMessage="user name is required" id="unameId" >
<f:validator validatorId="com.beans.UserNameAvailableValidator" />
<f:ajax event="blur" render="username_message" />
</h:inputText>
<rich:message for="unameId" id="username_message"/>
豆码:
@FacesValidator("com.beans.UserNameAvailableValidator")
@RequestScoped
public class UserNameAvailableValidator implements Validator {
UserdetailsDAO userdetailsDAO = null;
@Override
public void validate(FacesContext fc, UIComponent uic, Object value) throws ValidatorException {
String userName = (String) value;
userdetailsDAO = new UserdetailsDAOImpl();
try {
if(userdetailsDAO.getUserdetails(userName)!= null) {
System.out.println("user exist");
} else {
throw new ValidatorException(new FacesMessage("Username doesnot exist "));
}
} catch(Exception e) {
e.printStackTrace();
}
}
}
【问题讨论】:
-
你试过
标签了吗? -
您的验证器将在
rich:messages中显示消息。验证器不知道该消息对于 unameId 是准确的。 -
@mehmet cinar 我尝试使用 h:message 但它不起作用
-
h:message帮不了你。您可以在h:inputText中添加label属性并在验证器中使用它:如果定义了标签,则FacesMessage用于具有此标签的 UI 组件,如果未定义标签,则消息是通用的(用于视图,不适用于特定组件)。