2010-04-29 5 views
0

ResourceBundle에서로드 할 때 EL 표현식을 포함하는 리소스 메시지를 확인해야합니다. 기본적으로 텍스트가 들어있는 여러 속성 파일이 있습니다.JSF2 ResourceBundleLoader 재정의?

welcomeText = 오신 것을 환영합니다 # {userbean.name}

나는 사용자 정의 태그 라이브러리를 구현되도록하는 대신 말하고있는이 현재 작업을 볼 수있는 유일한 방법 : 텍스트의 일부는 다음과 같이됩니다

<f:loadBundle var="messages" basename="application.messages"/> 

내가

<mytaglib:loadBundle var="messages" basename="application.messages"/> 
#{messages.welcomeText} 

는 사용자 이름 "사용자 1"을 가진 사용자를 감안할 때 사용하는 것이 정상적으로 출력

내 구현은 handleGetObject를 재정의하고 변수 등을 해결하기 위해 ELResolver를 사용하는 사용자 정의 ResourceBundle 클래스를 사용합니다. 제안? 이미 사용 가능한 구현입니까?

감사합니다.

답변

1

매개 변수화 된 텍스트를 표시하려면 <h:outputFormat><f:param>을 사용하십시오. MessageFormat API에 의해 지원되며 API의 javadoc에서 설명한 것과 동일한 규칙이 적용됩니다.

예. 이

<h:outputFormat value="#{messages.welcomeText}"> 
    <f:param value="#{userbean.name}" /> 
</h:outputFormat> 

그것이 내가 MessageFormat의에 대해 알고 :)

+0

입니다,하지만 난 특별히 프로퍼티 파일 내부에서 변수를 해결하는 방법을 찾고 있어요와

welcomeText=Welcome {0} 

. 서로 다른 로케일이 서로 다른 메시지를 가지고 텍스트 출력에 다른 변수가 사용되는 것이 가능합니다. – CDSO1

+0

글쎄, 그 모델과 꽤 묶여 묶음. 번들 관리자는 사용 된 모델에 대해 정확하게 알고 있어야합니다. 그건 그렇고,'{1}', {2}','{n}} 등을 사용하고, 그것들을 모두 먹이고 어떤 값을 의미하는지 명확하게 기록 할 수 있습니다. 번들에 지정되지 않은 것은 무시됩니다. – BalusC