我想在带有seam的Java类中使用我的消息包(messages_fr.properties)。
在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
而不是真正的信息。
如何使用我的bundle是一个Java类?
感谢。
答案 0 :(得分:4)
我通常将资源包或资源注入类中并从那里使用它。 例如:
@In("#{messages['name']}")
private String name
或者,
@In
private Map<String, String> messages;
将resourceBundle注入Map。 (在这种情况下确保它的命名消息。)
答案 1 :(得分:2)
有很多方法可以做到。
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
答案 2 :(得分:1)
它正在使用您的解决方案:
@In
private Map<String, String> messages;
将messages.properties放在WEB-INF / classes /
中答案 3 :(得分:1)
String msg = org.jboss.seam.international.Messages.instance().get("key")
为我工作了!
使用实体bean时遇到了同样的问题。