覆盖默认验证消息

时间:2019-09-16 09:18:57

标签: primefaces

在尝试登录时验证用户输入时,我试图覆盖默认的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);
    }  }

2 个答案:

答案 0 :(得分:0)

不确定输入所使用的内容,但始终可以设置required = true,并为每个输入输入您自己的消息,其中requireMessage =“ yourmessage”。

示例:

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

答案 1 :(得分:0)

正如Rou Jie提到的,在这种情况下,您可以使用required + requiredMessage。

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

SoftInfo = JsonConvert.DeserializeObject<software>(SoftResponse);