2012-12-08 2 views
1

Mojarra JSF가 지원 모델의 텍스트 필드 크기를 제한 할 수있는 방법이 있습니까? 일반적으로JSF 자동 텍스트 필드 크기 기본 모델

예 : 나는 모든 필드에 최대 길이 속성을 추가 할 수 있지만

<p:inputText required="true" id="firstname" maxlength="50" value="#{user.firstName}"></p:inputText> 

class User { 
    @Size(max=50) 
    String firstName; 
} 

, 나는 내가 같은 필드를 사용하여 여러 가지 형태가 특별히 때 유지 보수에 문제가있는 것입니다 결국 생각 . 필드의 길이를 변경하면 어떻게 될까요?

아파치 myfaces가 확장 라이브러리 중 하나에서이 기능을 가지고 있다고 기억한다면, mojarra와 동등한 것이 있습니까?

이제 myfaces의 myfaces-extval-property-validation 라이브러리를 사용하고있었습니다. http://myfaces.apache.org/extensions/validator12/validation-modules-project/myfaces-extval-property-validation/index.html

mojarra와 동일한 기능이 있습니까?

감사합니다,
czetsuya

답변

1

전환 패턴.

백킹 빈에서 이러한 모든 정보를 숨기는 문제는 이러한 제약 조건/특성이 전체 JSF 웹 애플리케이션에서 사용할 수있는 단일 자원 번들 파일에 대해 특정 빈에 의해 지원되는보기에서만 사용 가능하다는 것입니다. 배포 모범 사례는 코드베이스 외부에 이러한 것들을 배치하는 것도 권장합니다. 특정 용도로 사용

  1. 프로젝트에 자바 스타일 패키지를 만듭니다. com.you.jsf.resources을 예로 들어 보겠습니다. 이 패키지에는 필드 설정이 포함 된 .properties 파일을 저장합니다. <var> 당신이 당신의 응용 프로그램

    <application> 
    <resource-bundle> 
    <base-name>com.you.jsf.resources</base-name> 
    <var>conf</var> 
    </resource-bundle> 
        </application> 
    
  2. 리소스 파일에서 리소스 파일을 액세스 할있는 변수 이름을 지정하여 faces_config.xml 파일에

    field.maxlength = 50 
    
  3. 구성 1 자원 번들 패키지) (내용은) #{conf['field.maxlength']}과 같은 JSF 컨텍스트에서 사용할 수 있습니다. 이것은 지금으로보기 내에서 사용할 수있는

    <p:inputText required="true" id="firstname" maxlength="#{conf['field.maxlength']}" value="#{user.firstName}"/> 
    
+0

이 접근법에 대한 나의 관심은 위의 내 코멘트와 동일합니다. 속성 파일이 예외가되는 엔티티 bean 크기 속성과 동기화되지 않습니다.그래서 엔티티의 필드에서 크기 정의를 가져 오려고합니다. – czetsuya

+0

@czetsuya 인 경우, 엔티티의 필드 정의는 모델 – kolossus

+0

yes의 일부로 전달됩니다. 하지만 엔티티 필드의 size 속성을 사용하여 jsf 페이지에서 텍스트 필드 길이를 어떻게 제한합니까? 그리고 Apache에서 위에서 언급 한 라이브러리처럼 자동으로 수행 할 수 있습니까? – czetsuya

2

당신은 최대 길이를 정의하는 빈 속성을 가질 수있다. 그런 다음이 유형의 모든 텍스트 필드의 길이를 적어도 한 곳에서 변경할 수 있습니다.

@ManagedBean 
@ApplicationScoped 
public class MyBean { 

    public int getType1MaxLength() { 
     return 50; 
    } 
} 

과 XHTML :

귀하의 요구 사항은 더 나은 당신이 필드의 최대 길이와 같은 오류/검증 메시지와 사용자 필드 제약 등 이러한 모든 속성을 구성한 JSF Resource Bundle에 제약을 지정하여 처리
<p:inputText ... maxlength="#{myBean.type1MaxLength}" value="#{user.firstName}"> 
+1

이 방법 나의 관심사는 관리 빈은 내가 크기 속성 정의를 제한 할 수 있도록 많은 엔티티 빈과 동기화 나갈 것입니다 엔티티에. – czetsuya

관련 문제