struts2 中 s:text 的使用 资源的访问 多语言实现

来源:互联网 发布:生活中耐看的女生知乎 编辑:程序博客网 时间:2024/05/22 15:37

把资源统一管理总是不可避免的。strut2 的 <s:text >可以用于访问我们定义的properties文件,具体步骤分为三步:

1 、在struts.properties文件(在web-info/classes下面,如果没有可以自己创建)中创建一条: struts.custom.i18n.resources=resourcename,相当于给struts提供了资源的具体位置或搜索路径,比如如果这里resourcename = package,那么如果如果使用中文的话对应的就是在web-info/classes下的package_zh_CN.properties文件,其他语言雷同。

2、创建一个Lisener,就是为了在struts2启动的时候把我们上一步设置的资源位置加载进去具体的代码如下:

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.apache.log4j.Logger;
import com.opensymphony.xwork2.util.LocalizedTextUtil;

public class ActionGlobalMessagesListener implements ServletContextListener {
  private static Logger log = Logger.getLogger(ActionGlobalMessagesListener .class);
  private static final String DEFAULT_RESOURCE = "global-messages";
  /**
   * Uses the LocalizedTextUtil to load messages from the global message bundle.
   * @see
   javax.servlet.ServletContextListener#contextInitialized(javax.servlet.Servle
   tContextEvent)
   */
  public void contextInitialized(ServletContextEvent arg0) {
    log.info("Loading global messages from " + DEFAULT_RESOURCE);
    LocalizedTextUtil.addDefaultResourceBundle(DEFAULT_RESOURCE);
    log.info("Global messages loaded.");
  }
  /**
   * @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent)
   */
  public void contextDestroyed(ServletContextEvent arg0) {
      // do nothing
    }
}

3、最后一步就是在web.xml里面设置好lisener,如下:

<listener>
   <listener-class>youPackagePath.ActionGlobalMessagesListener</listener-class>
   </listener>

通过上面三个步骤后就可使用<s:text了具体的使用可以看struts文档,应该比较容易。

该文章由http://struts.apache.org/2.0.14/docs/how-do-i-set-a-global-resource-bundle.html翻译而来,请参考

 

原创粉丝点击