Используйте пакет сообщений в классе Java с Seam - PullRequest
2 голосов
/ 24 августа 2010

Я хочу использовать свой пакет сообщений (messages_fr.properties) в классе Java со швом.

В файле jsf все работает нормально, как это:

<h2>#{msg.newCustomer}</h2>

Но вмой класс Java, я пытался сделать это:

statusMessages.addToControlFromResourceBundle("refArbor", "#{messages['error_refArborDoesntExist']}");

или это:

statusMessages.addToControlFromResourceBundle("refArbor", "error_refArborDoesntExist");

или еще раз это:

statusMessages.addToControlFromResourceBundle("refArbor", "#{msg.error_refArborDoesntExist}");

Но показанное сообщение:

error_refArborDoesntExist

А не реальное сообщение.

Как я могу использовать свой пакет в классе Java?

Спасибо.

Ответы [ 4 ]

4 голосов
/ 24 августа 2010

Я обычно внедряю комплект ресурсов или ресурс в класс и использую его оттуда. Пример:

@In("#{messages['name']}")
private String name

Или,

@In
private Map<String, String> messages;

который внедряет ресурсный пакет в виде карты. (убедитесь, что это именованные сообщения в этом случае).

2 голосов
/ 24 августа 2010

Есть несколько способов сделать это.

StatusMessages.instance().addFromResourceBundle("msg.newCustomer);
//This will add the msg.newCustomer message to the view

String msg = org.jboss.seam.international.Messages.instance().get("msg.newCustomer);
//This will put the msg.newCustomer message in variable msg
1 голос
/ 18 ноября 2011

String msg = org.jboss.seam.international.Messages.instance().get("key") работал для меня!

У меня была такая же проблема при использовании бина сущности.

1 голос
/ 24 августа 2010

Это работает с вашим решением:

@In
private Map<String, String> messages;

Просто поместите messages.properties в WEB-INF / classes /

...