【发布时间】:2010-11-23 23:09:24
【问题描述】:
我有一个简单的问题。 我需要捕捉用户在表单中输入空字符串并显示适当的错误消息。 我正在尝试使用 jsf required 属性,但是如果用户输入“”这样的字符串,则下一步验证不会出错。 我尝试过 Spring 注释 @NotNull 和 Hibernate @NotEmpty,但没有解决问题。 有什么想法吗?
【问题讨论】:
标签: string hibernate spring jsf
我有一个简单的问题。 我需要捕捉用户在表单中输入空字符串并显示适当的错误消息。 我正在尝试使用 jsf required 属性,但是如果用户输入“”这样的字符串,则下一步验证不会出错。 我尝试过 Spring 注释 @NotNull 和 Hibernate @NotEmpty,但没有解决问题。 有什么想法吗?
【问题讨论】:
标签: string hibernate spring jsf
我不确定 Spring 部分,但在 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();
}
}
【讨论】: