myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matthias Niehoff" <niehoff.matth...@googlemail.com>
Subject Bean Validation (JSR 303)
Date Mon, 27 Sep 2010 11:21:58 GMT
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


Mime
View raw message