Java 8 interface methods are not recognized by default as managed beans in EL

I am trying to customize my own native JSF tag. Therefore, I created a composite component with support interfaces as a drawing to create bean support for this component.

public interface CompLogin {
   String getUsername();
   void setUsername(String username);

   String getPassword();
   void setPassword(String password);

   String validateLogin();

   default String getPasswordWatermark() {
      return "Passwort";
   }

   default String getUsernameWatermark() {
      return "Loginname:";
   }

   default String getLoginButtonValue() {
      return "Login";
   }
}

So, I have a password, username and Validate method for the Login site. In addition, you want to use some default annotations for the watermarks of the input text and the button. If the performer wants to change it, he can do it.

I implemented this interface in a backup bean of a real application using my own JSF tag.

@Named
@RequestScoped
public class Login implements Serializable, CompLogin {

    private String username;
    private String password;


    @Override
    public String getUsername() {
        return username;
    }

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

    @Override
    public String getPassword() {
        return password;
    }

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

    @Override
    public String validateLogin() {
        System.out.println(username + " " + password);
        return null;
    }
}

I could work like that. But I get the error: "Caused by: javax.el.PropertyNotFoundException: class" Login "does not have the property" usernameWatermark ". '

, bean. , ?

: , conecpt. Java, getLoginButtonValue Login.

public class Main {

    public static void main(String[] args) {
        Login log = new Login();
        System.out.println(log.getLoginButtonValue());
    }
}

. . . ? , - cdi, bean -resolver - , java 8?

+4
2

Apache EL , . :

#{login.getUsernameWatermark()}
+2

, , , EL , , , .

ELResolver, , .

+1

All Articles