Java struts 2国际化不起作用
我正在开发struts 2和SpringWeb应用程序,它支持两种语言:英语和印地语。 我已配置国际化,但它不起作用,即当我从浏览器更改编码时,文本不会更改。 我甚至尝试通过编程更改语言环境,但仍然不起作用 RegisterAction.javaJava struts 2国际化不起作用,java,internationalization,struts2,Java,Internationalization,Struts2,我正在开发struts 2和SpringWeb应用程序,它支持两种语言:英语和印地语。 我已配置国际化,但它不起作用,即当我从浏览器更改编码时,文本不会更改。 我甚至尝试通过编程更改语言环境,但仍然不起作用 RegisterAction.java public class RegisterAction extends ActionSupport { public String execute(){ return "SUCCESS"; } public Locale getL
public class RegisterAction extends ActionSupport {
public String execute(){
return "SUCCESS";
}
public Locale getLocale(){
return new Locale("hi");
}
}
struts.xml
<action name="register" class="com.medics.action.RegisterAction">
<result name="SUCCESS">/Register.jsp</result>
</action>
全局消息\u hi.properties
hello=hello
Registration=Registration
Registration=\\u2354\\u2379\\u327\\u2367\\u2344\\u2381
这是该项目的快照
struts.xml和这两个消息文件位于类路径的根目录中。不幸的是,您用英语将键命名为与值相同的名称,因此您也无法真正判断是否正确加载了英语包。我的第一个猜测是Struts不知道全局消息*.properties是语言包 尝试将其添加到struts.xml中:
<constant name="struts.custom.i18n.resources" value="global-messages"/>
编辑
如果确定正在加载English bundle,则需要调试应用程序,以确认Struts2正确设置了印地语语言环境。操作中的断点应该允许您轻松检查
getLocale()
的值。不幸的是,您用英语将键命名为与值相同的名称,因此您也无法真正判断是否正确加载了英语包。我的第一个猜测是Struts不知道全局消息*.properties是语言包
尝试将其添加到struts.xml中:
<constant name="struts.custom.i18n.resources" value="global-messages"/>
编辑
如果确定正在加载English bundle,则需要调试应用程序,以确认Struts2正确设置了印地语语言环境。操作中的断点应该允许您轻松检查
getLocale()
的值。我已经在struts.properties文件中定义了全局消息资源包,自我更改该包中的值以来,English包正在正确加载,它反映在网页上我已经在struts.properties文件中定义了global messages resource bundle,English bundle正在正确加载,因为当我更改该bundle中的值时,它会反映在网页上