Struts2 在找不到键时更改Struts 2、i18n类的行为
我们在操作中使用了Struts2 在找不到键时更改Struts 2、i18n类的行为,struts2,internationalization,jsp-tags,Struts2,Internationalization,Jsp Tags,我们在操作中使用了getText,在验证器中使用了setMessageKey,在i18n应用程序的jsp文件中使用了 当Struts 2在资源包中找不到密钥时,它会返回密钥本身。例如form.transfer.confirm 我们如何改变这种行为,而不是让键本身Struts2返回空字符串。您需要创建TextProvider的自定义实现,并覆盖其中的getText方法 1) 创建类(例如EmptyDefaultTextProvider),扩展现有实现之一(例如TextProviderSupport
getText
,在验证器中使用了setMessageKey
,在i18n应用程序的jsp文件中使用了
当Struts 2在资源包中找不到密钥时,它会返回密钥本身。例如form.transfer.confirm
我们如何改变这种行为,而不是让键本身Struts2返回空字符串。您需要创建
TextProvider
的自定义实现,并覆盖其中的getText
方法
1) 创建类(例如EmptyDefaultTextProvider
),扩展现有实现之一(例如TextProviderSupport
)
2) 覆盖所有的getText
方法,如下所示:
publicstringgettext(stringkey,stringdefaultvalue){
返回super.getText(键“”);
}
3) 使用自定义类作为默认文本提供程序。将下面的内容放在struts.xml中
您需要创建
TextProvider
的自定义实现,并覆盖其中的getText
方法
1) 创建类(例如EmptyDefaultTextProvider
),扩展现有实现之一(例如TextProviderSupport
)
2) 覆盖所有的getText
方法,如下所示:
publicstringgettext(stringkey,stringdefaultvalue){
返回super.getText(键“”);
}
3) 使用自定义类作为默认文本提供程序。将下面的内容放在struts.xml中
似乎重写getText(字符串键、字符串默认值、列表参数)
将确保所有调用都被重写。@AlirezaFattahi至少还有getText(字符串键、字符串默认值、字符串[]参数)
和两个getText(字符串键、字符串默认值、列表参数、值堆栈)
。如果您的操作不使用struts 2的ActionSupport,则只有在您注入容器,然后使用容器注入TextProviderFactory时,上述操作才有效。有关示例,请参阅ActionSupport的源代码。似乎重写getText(字符串键、字符串默认值、列表参数)
将确保所有调用都被重写。@AlirezaFattahi至少还有getText(字符串键、字符串默认值、字符串[]参数)
和两个getText(String key、String defaultValue、List args、ValueStack stack)
。如果您的操作不使用struts 2的ActionSupport,则只有在您注入容器,然后使用容器注入TextProviderFactory时,上述操作才有效。有关示例,请参阅ActionSupport的源代码。