只要你的页面的编码是中文,这个<bean:message会自动找ApplicationResources_zh.properties文件里的key的。

解决方案 »

  1.   

    Action和Form类中又不需要显示出来,你就没必要取ApplicationResources_zh.properties里的值的,用application resource的目的就是国际化,所以我想不到有什么理由要在action和form里面用application resource的值,而且我也没听过有这样的方法.
      

  2.   

    对于使用者来说,一个支持国际化的WEB程序具有下面几种形式1. 根据用户浏览器自动设置显示的语言(无需用户干预)
    2. 提供用户选择,用户根据自己的需要决定使用何种语言显示
    3. 结合前两种.系统自动选择一种语言,但同时提供用户根据需要选择使用Struts开发国际化程序是一件非常便利的事情,我们来看前两种怎么来实现1. 这是最简单的方式,你不需要修改任何程序,只需要把资源文件按照各个语言翻译一遍并把这些文件按照国际化程序的要求命名好放置同一个目录即可. 例如 ApplicationResource_en_US.properties ApplicationResource_zh_TW.properties . 这种方式虽然自动的给用户设置好要显示的语言,但是有时候由于浏览器本身的问题,或者用户自己想看其他语种的时候就没有办法.2. 这是比较常见的方式,由用户自己来选择所要显示的语言. 一般的情况是在首页或者登录页上增加语言的选项,用户选中其中一种登录后即以用户选择的语言进行显示,但是用户登录后必须把用户所选择的语言保存起来并让程序也就是<bean:message这些标签可以使用所选择的语言加载配置信息,因此在用户登录执行的Action类中加入如下代码Locale locale = new Locale(request.getParameter("locale"));
    //TODO:判断locale的有效性,无效的话不存入到sesssion中
    req.getSession().setAttribute(Globals.LOCALE_KEY,locale);好了,现在<bean:message/>这个标签库现在就可以根据你保存在session中的Locale对象来决定加载的是哪种语言, 通过看<bean:message/>标签库的源码我们就可以一目了然知道该标签库在加载资源前先从session或者该Locale对象,如果为空则使用request.getLocale()这个值来加载对应语言的资源,因此这种做法实际上是实现了前面提到的第三种形式. 接下来就是翻译资源文件,有如第一步讲到的.Struts框架在实现国际化应用程序的时候还是替我们想的很周到,因此你所需要做的就是翻译.最后切记两点:
    1. 页面的字符集必须是UTF-8,例如:
    <%@ page language="java" contentType="text/html;charset=UTF-8" %>
    2. 另外页面的所有的提示信息都应该在资源文件中定义
      

  3.   

    import org.apache.struts.util.MessageResources;
    MessageResources resources = getResources(request);
    String message = resources.getMessage("xxxx");
      

  4.   

    ActionErrors errors = new ActionErrors();  
    errors.add(ActionErrors.GLOBAL_ERROR,
                         new ActionError("city.no.result"));
              saveErrors(req, errors);
      

  5.   

    我想在Action类中获得一submit的值,然后根据这值来做逻辑运算,而这submit的值是在ApplicationResources_zh.properties这里的,我测试正确在来结帖,,谢谢大家哦