在Struts中,可以从ResourceBundle中选择ActionMessage中的“消息替换值”

时间:2014-01-23 09:03:07

标签: java struts resourcebundle messageformat

我做了什么来实现它。

操作文件:

ResourceBundle rb = ResourceBundle.getBundle("com.....ApplicationResources");               
String title=rb.getString("entity.member");
messages.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage("message.save",title ));

申请资源:

entity.member=Member
entity.Locker=Locker
message.save={0} saved successfully

我想要的是:

使用硬编码字“会员”替换“消息替换值”的路线很短。 喜欢 messages.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage(“message.save”,“Member”));

但是

1. MessageResources resources = getServlet().getInternal().getMessageResources("com....ApplicationResources")

2. ResourceBundle rb = ResourceBundle.getBundle("com.....ApplicationResources");

3. String title = getResources(request).getMessage(getLocale(request), "entity.member");

messages.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage("message.save",title ));

以上三条是用相应的语言措辞替换“消息替换值”的漫长路线。

寻找像我用于硬编码的短路线。

2 个答案:

答案 0 :(得分:0)

在struts.xml中包含以下元素

<constant name="struts.custom.i18n.resources" value="ApplicationResources" />

将ActionSupport扩展到您的Action类

  

com.opensymphony.xwork2.ActionSupport

在需要财产价值的地方使用以下功能

  

getText(String key)

答案 1 :(得分:0)

您可以使用MessageFormat使用参数格式化邮件。

MessageFormat.format(rb.getString("message.save"), new Object[]{title})

并与ActionMessage一起使用,就像Struts在使用MessageResources时所做的那样。