【问题标题】:Localization in struts1struts1 中的本地化
【发布时间】:2014-04-22 17:50:08
【问题描述】:

我的项目需要支持 Web 应用程序中的本地化。

该项目是一个为其用户提供服务的网络应用程序。

它基于 Struts 1.2。

要求:jsp页面中的标签可以根据用户的喜好进行控制,即标签可以根据登录的用户而有所不同。

用户可以更改他/她想看到的标签文本。

如何在 Struts 1.2 中实现这一点?

我知道 Struts i18n,但它是基于语言环境的。

我的想法是为每个用户创建一个单独的属性文件。如何在 Struts 1.2 中使用相同的属性文件在 JSP 中显示标签?

请帮忙。

【问题讨论】:

    标签: java localization internationalization struts struts-1


    【解决方案1】:

    在单个属性文件中,您可以拥有多个具有不同用户名的资源 ID。

    例如:
    user1.title=用户 1 的标题

    user2.title=user2 的标题

    并在 bean:message 中创建动态密钥取决于用户登录。

    在 struts-config.xml 中

    <message-resources parameter="com.struts.MessageResource" key="appResource"></message-resources>
    

    在 JSP 中:

    <%  
    String username= (String) request.getAttribute("username");  
    %>
    <bean:message bundle="appResource" key="<%= username + ".title"%>" />
    

    您可以通过创建自己的模板并利用它们来控制用户的偏好,而不是针对用户的偏好使用不同的标签。这样,您无需为每个新用户添加资源 ID。

    【讨论】:

    • 感谢@Karthik 的回复。我认为最好使用不同的属性文件,以便更容易维护。此外,我们还可以为用户提供一个前端屏幕来保存偏好。还有 1 件事.. 这个 MessageResource 属性文件的位置可以不是 war 或 jar 吗?
    • 补充:这些MessageResource属性文件可以存放在单独的位置
    • 您可以编写自定义 struts-tag 以使用资源包从不同位置读取您的资源 ID。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 2012-01-05
    • 2015-11-04
    • 2010-10-22
    • 2014-03-30
    相关资源
    最近更新 更多