2013-06-04 1 views
0

Facelets 페이지에는 다양한 변환기가 필요한 다양한 <h:inputText><h:outputText> 구성 요소가 있습니다.Facelets 페이지에서 반복/상수 사용을 피하는 방법은 무엇입니까?

나는이 같은 모든 매개 변수와 컨버터를 반복하지 않도록하고 싶습니다 :

<h:inputText id="bla" value="#{mybean.val}" > 
    <f:convertNumber locale="en" maxFractionDigits="3" minFractionDigits="3"/> 
</h:inputText> 
[...] 
<h:outputText id="bla2" value="#{mybean.val2}" > 
    <f:convertNumber locale="en" maxFractionDigits="3" minFractionDigits="3"/> 
</h:outputText> 
[...] 
<h:inputText id="bla3" value="#{mybean.val3}" > 
    <f:convertNumber locale="en" maxFractionDigits="3" minFractionDigits="3"/> 
</h:inputText> 

이러한 반복을 방지하는 가장 좋은 방법은 무엇입니까?

나는 <ui:include>을 사용할 수 있다고 생각하지만, 그것은 내가 바보처럼 보이는 한 줄에 대해서만 별도의 파일을 가져야한다는 것을 의미 할 것이다. 대안이 있습니까?

답변

2

변환기를 서브 클래스하여 생성자에서 기본값을 설정합니다. 다음

@FacesConverter("defaultNumberConverter") 
public class DefaultNumberConverter extends NumberConverter { 

    public DefaultNumberConverter() { 
     setLocale(Locale.ENGLISH); 
     setMinFractionDigits(3); 
     setMaxFractionDigits(3); 
    } 

} 

그것을 사용

<h:inputText id="bla" value="#{mybean.val}" converter="defaultNumberConverter" /> 
[...] 
<h:outputText id="bla2" value="#{mybean.val2}" converter="defaultNumberConverter" /> 
[...] 
<h:inputText id="bla3" value="#{mybean.val3}" converter="defaultNumberConverter" /> 

를 추가하는 단계를 얻을 create a tag file or perhaps a composite 배치 원하는 성분 :

<my:inputNumber id="bla" value="#{mybean.val}" /> 
[...] 
<my:outputNumber id="bla2" value="#{mybean.val2}" /> 
[...] 
<my:inputNumber id="bla3" value="#{mybean.val3}" /> 
관련 문제