是否可以直接格式化struts 2中消息资源中有多个占位符的文本?
作为一个例子,考虑下面的键,它应该产生 Transfer2000USDFromBobToMike
#resources.properties
filename=Transfer{0}From{1}To{2}
#resources_fa_IR.properties (consider this is correct translation in Persian!)
filename={انتقال{0} از {1} به {2
在动作中我想调用这样的东西(这是无效的!!):
getText("filename", amount,sourceAccount,destincationAccount);
我知道我可以先获取filename
,然后使用java Formatter。
另一方面,我找到了直接格式化消息的示例。如您所知,这是有效的
message properties
format.money = {0,number,\u00A4##0.00}
jsp
<s:text name="%{getText('format.money',{amount})}" />
我可以使用上述解决方案(快捷方式)格式化filename
答案 0 :(得分:2)
您需要将参数作为数组或列表传递,因为getText
方法会像这样重载:
getText(String key, String[] args)
和
getText(String aTextName, List<?> args)
例如:
getText("filename", new String[] { amount, sourceAccount, destincationAccount });