Primefaces 覆盖默认验证消息

Primefaces 覆盖默认验证消息,primefaces,Primefaces,我试图在登录时覆盖验证用户输入时的默认primefaces消息。当用户名和密码不是admin/admin时,我设法获得了我自己的消息,现在我想在没有用户名和/或密码时获得我自己的消息 我已经尝试了下面的代码(如果行的话),但它不起作用。这三个案子都试过了,但都没用 public class UserLogin{ private String username; private String password; private String vrstaPra

我试图在登录时覆盖验证用户输入时的默认primefaces消息。当用户名和密码不是admin/admin时,我设法获得了我自己的消息,现在我想在没有用户名和/或密码时获得我自己的消息

我已经尝试了下面的代码(如果行的话),但它不起作用。这三个案子都试过了,但都没用

     public class UserLogin{

    private String username;

    private String password;

    private String vrstaPrava;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getVrstaPrava() {
        return vrstaPrava;
    }

    public void setVrstaPrava(String vrstaPrava) {
        this.vrstaPrava = vrstaPrava;
    }

    public void login() {
        FacesMessage message = null;
        boolean loggedIn = false;



        if(username != null && username.equals("admin") && password != null && password.equals("admin")) {
            loggedIn = true;
            message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Dobro došli", username);

        } else if (username == null) {
            loggedIn = false;
            message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Greška prilikom prijave", "Niste unijeli korisničko ime/lozinku");
        } else {
            loggedIn = false;
            message = new FacesMessage(FacesMessage.SEVERITY_WARN, "Greška prilikom prijave", "Pogrešno korisničko ime/lozinka");
        }

        FacesContext.getCurrentInstance().addMessage(null, message);
        PrimeFaces.current().ajax().addCallbackParam("loggedIn", loggedIn);
    }  }

不确定输入时使用的是什么,但您始终可以设置required=true,并使用requiredMessage=“yourmessage”为每个输入输入您自己的消息

例如:

<p:inputText id="username" required="true" requiredMessage="Please enter a username" />

如柔洁所述,在这种情况下,您可以使用required+requiredMessage

您还可以在适当的messages.properties文件中自定义默认消息,以避免对每个字段重复requiredMessage

javax.faces.component.UIInput.REQUIRED={0}: Your custom text here.

用户名。等于(“”);或用户名..length()==0;另外,你能把这些信息翻译成英语吗?YouBean的范围是什么?@Jim_Ktr尝试了这两种方法,但都无效。如果管理员/管理员“欢迎”+用户名,否则“登录时出错,用户名/密码错误”,则显示消息。塞拉隆:不,它不起作用。Jasper de Vries没有提到bean的作用域,只提到了“@ManagedBean”,您是否尝试设置断点并进行调试?请您详细说明“它不工作”的含义。尝试将范围设置为至少
ViewScoped
?就像现在的问答一样?