2013-12-17 2 views
0

아래 위치 표시기에 국제화 된 메시지를 표시하고 싶습니다. 내가 타격을 가하는 모든 예는 faces-config에 정의 된 메시지 묶음으로 작업하고 단순히 그 번들 이름을 사용한다. 그러나 이것은 우리가 어떤 메시지 키를 사용해야 하는지를 알 때에 만 작동합니다. 이것은 여기에 해당하지 않습니다. JSF Bean 특성에 국제화를 적용하는 방법은 무엇입니까?

이 기본 예제를 고려하십시오

<h:dataTable border="1" value="#{indexBean.webAdminCatalogList}" var="menuItem"> 
    <h:column>#{message key here}</h:column> 
</h:dataTable> 

위의 코드는 목록을 반복합니다. 각 menuItem 변수는 번들 ​​속성 파일의 필드에 해당하는 titleMessageCode을 포함합니다. menuItem.titleMessageCode을 사용하여 메시지를 가져 오는 방법은 무엇입니까? 특별한 JSF 태그가 있습니까? 아니면 bean을 만들 때 준비된 국제화 된 레이블입니까?

답변

1

동적 변수를 맵 키로 사용하려면 중괄호 표기법 #{map[dynamicKey]}을 사용할 수 있습니다.

<h:dataTable border="1" value="#{indexBean.webAdminCatalogList}" var="menuItem"> 
    <h:column>#{text[menuItem.titleMessageCode]}</h:column> 
</h:dataTable> 

이 JSF에 국한되지 것을 참고하지만, EL에 : text의 번들 명을 지정하면, 여기에 예입니다. 그 #{} 것들은 JSF의 일부가 아니며 EL (표현 언어)의 일부입니다. JSF는 단지 그것을 사용합니다. our EL wiki page을 참조하십시오.

관련 문제