2010-11-23 2 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

마지막 해결책은 잘 작동합니다. 내가 사용해야하는 유일한 주석은 @NotEmpty이기 때문에 @NotBlank는 작동하지 않습니다. 나는 Hibernate 3.2.5를 사용하고 있기 때문에 어쩌면? –

+0

반갑습니다. 그것은 실제로 Hibernate 최신 버전에서 소개되었습니다. – BalusC

+0

좋아요, 스프링 애노테이션을 사용하고 싶다면 해결책이 없습니까? 하지만 내가 마지막으로 솔루션에 대한 만약 내가 이미 미국 미국의 코드를 병합 할 필요가 있습니까? 또는 2 컨버터를 사용할 수있는 솔루션이 있습니까? –