2010-11-23 21 views
2

私は簡単なプロブレムを持っています。 ユーザーが空の文字列をフォームに入力して、適切なエラーメッセージを表示するときに捕捉する必要があります。 私はjsf required属性で試していますが、ユーザがエラーのない次のような文字列を入力すると、 私はSpringアノテーション@NotNullとHibernate @NotEmptyを試しましたが、何も問題を解決しません。 JSFで空白文字列が空白の空文字列 - ひびの入った

答えて

2

私は春の部分についてはよく分からないんだけど、休止状態であなたはこのために@NotBlank注釈を使用することができます。

:あなたが仕事をしていません String.classためにJSFコンバータを作成することができ、

@NotBlank 
private String value; 

しますか、

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(); 
    } 

} 
+0

最後の解決策はうまくいきます。 @NotBlankについては、私が使用しなければならない唯一の注釈は@NotEmptyなので、私はそれを動作させることができません。 私はHibernate 3.2.5を使用している可能性がありますか? –

+0

ようこそ。これは、後のHibernateのバージョンで実際に導入されました。 – BalusC

+0

私はSpringアノテーションを使用したいのですが、解決策はありませんか? しかし、私はすでに私はコンバータを私はコードをマージする必要があります場合は、最後のソリューションの最後の?または2つのコンバータを使用できるソリューションがありますか? –

関連する問題