/ / Różne sposoby deklarowania pakietu zasobów w JSF2.x - jsf, facelets, resourcebundle, jsf-2.2

Różne sposoby deklarowania pakietu zasobów w JSF2.x - jsf, faclets, resourcebundle, jsf-2.2

Pracuję nad JSF2.2 w moim miejscu pracy. Mój Faces-config.xml ma znacznik pakietu zasobów, który pomaga mi przypisać zmienną do pliku właściwości i użyć tej zmiennej w elemencie EL.

   <resource-bundle>
<base-name>properties.common</base-name>
<var>prop</var>
</resource-bundle>

Znalazłem też inny sposób na osiągnięcie tego celu za pomocą takiego tagu f: loadBundle

<f:loadBundle basename="properties.common" var="prop"/>

Ale to jest zlokalizowane rozwiązanie, co oznacza, że ​​musiałbym napisać to na każdej stronie.

  1. Czy to zadziała, jeśli zdefiniuję to w szablonie? Jeśli tak, jak to osiągnąć?

  2. Czy istnieje inny sposób, w jaki mogę globalnie zadeklarować zasób za pomocą zmiennej, która ma być używana w elemencie EL (jak w przypadku twarzy-config.xml)

Odpowiedzi:

1 dla odpowiedzi № 1

Czy to zadziała, jeśli zdefiniuję to w szablonie?

Tak.


Jeśli tak, jak to osiągnąć?

Zrób dokładnie to, co powiedziałeś. Zdefiniuj to w szablonie.


Czy istnieje inny sposób, w jaki mogę globalnie zadeklarować zasób za pomocą zmiennej, która ma być używana w elemencie EL (jak w przypadku twarzy-config.xml)

Umieść go w mapowaniu żądań w (post) konstruktorze komponentu bean o zasięgu, do którego odwołuje się widok.

ResourceBundle bundle = ResourceBundle.getBundle("properties.common", facesContext.getViewRoot().getLocale());
externalContext.getRequestMap().put("prop", bundle);

Może być nawet określany jako właściwość komponentu bean o zasięgu żądania, co gwarantuje konstrukcję fasoli, nawet jeśli nie ma odniesienia w innym miejscu widoku.


0 dla odpowiedzi nr 2

Właśnie tego szukam, zobacz mój post https://stackoverflow.com/questions/24461307/jsf-2-external-resource-bundle

ResourceBundle bundle = ResourceBundle.getBundle("properties.common",facesContext.getViewRoot().getLocale());
externalContext.getRequestMap().put("prop", bundle);

Dziękuje wszystkim...