Ho un file di proprietà per la localizzazione:JSF 2 localizzazione (bean gestito)
foo=Bar
title=Widget Application
Questo è legato a come resource-bundle
nella faces-config:
<resource-bundle>
<base-name>com.example.messages.messages</base-name>
<var>msgs</var>
</resource-bundle>
posso accedere a questo solo bene nei facelets vista utilizzando EL:
<title>#{msgs.title}</title>
Tuttavia, se ci sono cose come SQLExceptions, ho bisogno essere in grado di scrivere messaggi dal bean gestito. Questo è tutto il funzionamento anche:
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "There was an error saving this widget.", null);
FacesContext.getCurrentInstance().addMessage(null, message);
Qui è il problema: voglio avere quei messaggi provenire dalle proprietà del file in modo che anche loro, possono essere modificati in base alle impostazioni internazionali. C'è un modo semplice per accedere al file delle proprietà usando l'iniezione?
Ho visto questo quando ho cercato su Google. Tuttavia, c'è un modo più elegante di iniettare il contenitore usando @Resource ("# {msgs}") o qualcosa del genere? Suppongo che, dal momento che sto usando CDI, potrei creare un produttore di '@ MessageBundle' o qualcosa del genere, e quindi restituire un oggetto' Properties' ... –
Ho usato questo approccio in uno dei nostri ultimi progetti - avevamo il problema identico con gli errori di DB. Posso dare un'occhiata alla vecchia fonte di mercoledì la prossima settimana se questo è ancora irrisolto. – Lars
Hai ragione che è un modo valido per farlo. Mi stavo chiedendo se c'era un modo per farlo in modo più elegante. Posso semplicemente usare CDI per iniettarlo. Funzionerà se non ci sono annotazioni incorporate. –