Java 在Struts中,How';消息的替换值';可以从ResourceBundle中选择in-ActionMessage
我为实现它所做的一切 操作文件: 应用程序资源: 我想要的是: 有一个短路径可以将“消息的替换值”替换为硬编码单词“Member”。 喜欢 messages.add(ActionMessages.GLOBAL_MESSAGE,newactionmessage(“MESSAGE.save”,“Member”)) 但是 以上三条是用各自的语言文字替换“消息替换值”的漫长路线Java 在Struts中,How';消息的替换值';可以从ResourceBundle中选择in-ActionMessage,java,struts,resourcebundle,messageformat,Java,Struts,Resourcebundle,Messageformat,我为实现它所做的一切 操作文件: 应用程序资源: 我想要的是: 有一个短路径可以将“消息的替换值”替换为硬编码单词“Member”。 喜欢 messages.add(ActionMessages.GLOBAL_MESSAGE,newactionmessage(“MESSAGE.save”,“Member”)) 但是 以上三条是用各自的语言文字替换“消息替换值”的漫长路线 寻找像硬编码一样的短路线 在struts.xml中包含以下元素 <constant name="struts.custo
寻找像硬编码一样的短路线 在struts.xml中包含以下元素
<constant name="struts.custom.i18n.resources" value="ApplicationResources" />
将ActionSupport扩展到您的Action类
com.opensymphony.xwork2.ActionSupport
在需要属性值的任何位置使用以下函数
getText(字符串键)
您可以使用
MessageFormat
设置带有参数的消息格式
MessageFormat.format(rb.getString("message.save"), new Object[]{title})
并将其与
ActionMessage
一起使用,就像Struts在使用MessageResources
时所做的那样 为什么不想在操作文件中给出路径?因为当我写“newactionMessage(“message.save”,“Member”);“我不需要路径来获取”message.save“,所以应该有一些方法来获取它,而不需要路径或字符串title=getResources(request)。getMessage(getLocale(request),“entity.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 ));
<constant name="struts.custom.i18n.resources" value="ApplicationResources" />
MessageFormat.format(rb.getString("message.save"), new Object[]{title})