在struts2中的I18n

时间:2012-09-04 10:39:51

标签: java jsp properties struts2 resourcebundle

我是struts2的新手,我想在我的网络应用程序中添加i18n。我在文档这样的代码海:

<s:url id="localeEN" namespace="/" action="locale">
    <s:param name="request_locale">en</s:param>
</s:url>
<s:url id="localeruRU" namespace="/" action="locale">
    <s:param name="request_locale">ru_RU</s:param>
</s:url>
<s:a href="%{localeEN}">English</s:a>
<s:a href="%{localeruRU}">Russian</s:a>

我们需要像这样添加动作类:

public class LocalizationAction extends ActionSupport {
    public String execute() {
        return SUCCESS;
    }
}

在struts.xml中我们添加:

<struts>
    <constant name="struts.custom.i18n.resources" value="global"/>
    <constant name="struts.devMode" value="true"/>

    <package name="default" namespace="/" extends="struts-default">
        <action name="locale" class="by.bulgak.newsmanager.action.LocalizationAction">
            <result name="success">index.jsp</result>
        </action>
    </package>
</struts>

我也有名称为globalglobal_ru_RU

的属性文件

我做了我从教程中读到的所有内容但是当我在jsp页面中设置param时,我的IDE告诉我名称request_locale是未知属性..

请告诉我,我的错误在哪里。

enter image description here

我的IDE不支持它,这就是为什么当我想在运行我的应用程序时更改语言时我的IDE不会在struts2中调用I18n方法

1 个答案:

答案 0 :(得分:1)

Struts2不会将默认的i18n属性与英语相关联。

当我设置默认属性时:property_name_en.properties它工作正常。

但我不明白为什么会这样。 我看到很多例子,我甚至将它们放入我的机器中,它们工作正常, 但我没有工作..可能有人知道什么是问题?