Hi,

I'm trying to realize Bean Validation. I annotated my attributes and set
javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL true.
Furthermore I added a h:message tag in my form. When I test the validation
nothing happens. The input is accepted (and in my case persisted).
Relevant parts of the Code:

Web.xml

    <context-param>
 
<param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</par
am-name>
        <param-value>true</param-value>
    </context-param>
    
        <context-param>
        <param-name>javax.faces.VALIDATE_EMPTY_FIELDS</param-name>
        <param-value>auto</param-value>
    </context-param>

User.java

import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Email;

public class User {
        @NotNull
        private String nachname;
        @NotNull
        private String vorname;
        @NotNull
        private String userID;
        @NotNull
        private String password;
        @NotNull
        @Email
        private String email;
        @NotNull
        private String role;
...
}

UserBean.java

@ManagedBean
@SessionScoped
public class UserBean {
        
        private User user = new User();

        public void setUser(User user) {
                this.user = user;
        }

        public User getUser() {
                return user;
        }

        public String save() {
                [...]
                return "/admin/user/showUser.xhtml";
        }
[...]
}

And last but not least: 
editUser.xhtml

<body>
<h:form id="form">
        <h:messages showDetail="true" showSummary="false" />
        <h:panelGrid columns="2" id="grid">
                <h:outputLabel value="Vorname:" for="firstName" />
                <h:inputText id="firstName" value="#{userBean.user.vorname}"
/>
                <h:outputLabel value="Nachname:" for="lastName" />
                <h:inputText id="lastName" value="#{userBean.user.nachname}"
/>
                <h:outputLabel value="Email:" for="email" />
                <h:inputText id="email" value="#{userBean.user.email}" />
                <h:outputLabel value="Rolle:" for="role" />
                <h:inputText id="role" value="#{userBean.user.role}" />
                <h:outputLabel value="Passwort:" for="password" />
                <h:inputSecret id="password"
value="#{userBean.user.password}" />
                <h:commandButton id="save" action="#{userBean.save}"
value="Speichern" />
        </h:panelGrid>
</h:form>
</body>

Did I miss a point?  I thougt it would only be annotating the Beans.

Thanks for your help!

Matthias Niehoff

Reply via email to