2009-12-10 3 views
1

MyFaces 1.1 ValidateRegExpr 태그를 사용하여 정규 표현식에 대한 사용자 입력의 유효성을 검사하고 있습니다.JavaServer Pages : 표현식 언어없이 코드에서 속성으로 값을 가져 오는 방법은 무엇입니까?

코드를 통해 정규식 패턴을 동적으로 할당하고 싶지만 http://myfaces.apache.org/commons11/myfaces-validators11/tagdoc/mcv_validateRegExpr.html에 따르면 속성 패턴은 표현식 언어를 지원하지 않습니다.

내 JSP 파일의 태그는 다음과 같이 가정한다 :

<tc:in value="${dataBean.currentBean.field}"> 
     <mcv:validateRegExpr 
      pattern="${dataBean.currentBean.validationRegEx}" 
      message="${dataBean.currentBean.validationMessage" /> 
</tc:in> 

동적으로 EL을 지원하지 않는 컨트롤을 JSP하는 속성 값을 할당 선호하는 방법은 무엇입니까?

답변

1

javax.faces.validator.Validator을 구현하고 <validator>faces-config.xml에 등록하십시오.

public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException { 
    SomeBean someBean = SomeFacesUtil.evaluateExpressionGet("someBean", SomeBean.class); 
    if (!value.toString().matches(someBean.getPattern())) { 
     throw new ValidatorException(new FacesMessage(someBean.getMessage())); 
    } 
} 
: 실제 자바 클래스에서는 일반 자바 코드 :

기본 킥오프 예를 작성하는 자유가있다