找不到键时更改Struts 2,i18n类的行为 [英] Change Struts 2, i18n classes behavior when key is not found

查看:252
本文介绍了找不到键时更改Struts 2,i18n类的行为的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于i18n应用程序,我们在操作中使用getText,在验证器中使用setMessageKey,在jsp文件中使用<s:text>.

We used getText in actions, setMessageKey in validators and <s:text> in jsp files for an i18n application.

当Struts 2在资源束中找不到键时,它将返回该键本身.例如form.transfer.confirm.

When Struts 2 could not find a key in resource bundles it returns the key itself. For example form.transfer.confirm.

我们如何通过Struts2代替键本身返回空字符串的方式来更改此行为.

How can we change this behavior in the way that instead of the key itself Struts2 returns empty string.

推荐答案

您需要创建TextProvider的自定义实现并覆盖其中的getText方法.

You need to create custom implementation of TextProvider and override getText methods in it.

1)创建扩展TextProvider现有实现之一(例如TextProviderSupport)的类(例如EmptyDefaultTextProvider).

1) Create class (e.g. EmptyDefaultTextProvider) extending one of TextProvider existing implementations (e.g. TextProviderSupport).

2)像这样覆盖所有getText方法:

2) Override all getText methods like that:

public String getText(String key, String defaultValue) {
     return super.getText(key, "");
}

3)使用您的自定义类作为默认的文本提供程序.放在下面的struts.xml中.

3) Use your custom class as the default text provider. Put below in struts.xml.

<constant name="struts.xworkTextProvider" value="emptyDefaultTextProvider" />

<bean type="com.opensymphony.xwork2.TextProvider" name="emptyDefaultTextProvider" 
                              class="packagepath.EmptyDefaultTextProvider" scope="default" />

这篇关于找不到键时更改Struts 2,i18n类的行为的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆