2
我有一个简单的问题。 当用户在窗体中输入空字符串并显示相应的错误消息时,我需要捕获它。 我正在尝试使用jsf必需的属性,但是如果用户输入“”这样的字符串,那么验证会在没有错误的情况下执行。 我曾尝试使用Spring注解@NotNull和Hibernate @NotEmpty,但没有解决问题。 有什么想法?空字符串与JSF中的多个空白问题 - 春节--HIBERNATE
我有一个简单的问题。 当用户在窗体中输入空字符串并显示相应的错误消息时,我需要捕获它。 我正在尝试使用jsf必需的属性,但是如果用户输入“”这样的字符串,那么验证会在没有错误的情况下执行。 我曾尝试使用Spring注解@NotNull和Hibernate @NotEmpty,但没有解决问题。 有什么想法?空字符串与JSF中的多个空白问题 - 春节--HIBERNATE
我不知道春天的一部分,但在Hibernate中,你可以使用@NotBlank
注释本:
@NotBlank
private String value;
或者,你可以为String.class
该做的工作创建JSF转换器:
package com.example;
import javax.faces.component.EditableValueHolder;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
@FacesConverter(forClass=String.class)
public class EmptyToNullConverter implements Converter {
public Object getAsObject(FacesContext facesContext, UIComponent component, String value) {
if (value == null || value.trim().isEmpty()) {
if (component instanceof EditableValueHolder) {
((EditableValueHolder) component).setSubmittedValue(null);
}
return null;
}
return value;
}
public String getAsString(FacesContext facesContext, UIComponent component, Object value) {
return (value == null) ? null : value.toString();
}
}
好的,最后的解决方案很好。 对于@NotBlank我无法工作,因为唯一必须使用的注释是@NotEmpty。 也许是因为我使用Hibernate 3.2.5? – 2010-11-23 23:30:40