`
xumos
  • 浏览: 9497 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

displaytag的国际化方法

阅读更多
在做国际化时,由于资源文件分模块使用,所以用displaytag提供的I18nStrutsAdapter类不能实现国家化,需要自己重新编写一个I18nStrutsAdapter类。


1、默认国际化资源文件:

首先需要一个displaytag.properties文件,放在class文件夹下,

在displaytag的类包里中有,org.displaytag.properties.TableTag.properties.displaytag.properties

在此文件中找到locale.provider=org.displaytag.localization.I18nJstlAdapter,

改成locale.provider=org.displaytag.localization.I18nStrutsAdapter,表示为struts的国际化

<display:column property="uname" titleKey="userdata.userInfo.userName"/>


2、分模块多个国际化资源文件:

同样需要一个displaytag.properties文件,

改成locale.provider=test.common.extension.I18nTestStrutsAdapter (自定义的一个类)

package test.common.extension;

import java.util.Locale;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.Tag;

import org.apache.struts.Globals;
import org.apache.struts.taglib.TagUtils;
import org.displaytag.localization.I18nResourceProvider;
import org.displaytag.localization.LocaleResolver;

public class I18nTestStrutsAdapter implements I18nResourceProvider, LocaleResolver {
    public static final String UNDEFINED_KEY = ???; //$NON-NLS-1$

       public Locale resolveLocale(HttpServletRequest request) {
       Locale userLocale = null;
       HttpSession session = request.getSession(false);

       if (session != null) {
           userLocale = (Locale) session.getAttribute(Globals.LOCALE_KEY);
        }

        if (userLocale == null) {
            userLocale = request.getLocale();
        }

        return userLocale;
    }

        public String getResource(String resourceKey, String defaultValue, Tag tag, PageContext pageContext) {
        	String titlkey = (resourceKey != null) ? resourceKey : defaultValue;
       	String[] temp = titlkey.split("#");
        	String bundle = temp[0];
        	String key = temp[1];
       	String title = null;
       	try {
       	 //从指定的Resource Bundle(资源文件)中返回一条消息文本,参数locale指定Locale,参数key指定消息key
           title = TagUtils.getInstance().message(pageContext, bundle, Globals.LOCALE_KEY, key);
        	} catch (JspException e) {
            e.printStackTrace();
       	}
      	if (title == null &amp;&amp; resourceKey != null) {
          title = UNDEFINED_KEY + resourceKey + UNDEFINED_KEY;
      	}
       	return title;
    }
}


workshop_zh_CN.properties 


<display:column property="uname" titleKey="workshop#userdata.userInfo.userName"/>


1
0
分享到:
评论

相关推荐

    displaytag的使用方法

    Displaytag 还提供了许多其他高级特性,如条件样式、国际化支持、自定义标签扩展等。为了充分利用 Displaytag 的功能,建议仔细阅读其官方文档,了解更多信息。通过熟练掌握 Displaytag,你可以在开发过程中更高效地...

    displaytag及使用方法

    DisplayTag支持分页、排序、导出、国际化和自定义样式,是开发人员处理表格展示时的一个强大工具。 DisplayTag的工作原理基于JSP标签库,它可以与任何Java持久层框架(如Hibernate、JPA)或数据访问技术(如JDBC)...

    displaytag-1.1.1标签库及其使用方法.rar

    此外,DisplayTag 还支持国际化(i18n)和自定义样式,可以轻松调整表格的外观和行为。你可以通过修改或创建自定义的CSS样式文件来实现个性化的表格设计。 为了更好地利用DisplayTag,你需要理解以下几个关键概念:...

    displayTag1.2

    3. **国际化与本地化**:DisplayTag支持多语言环境,可以根据用户的浏览器设置自动显示相应的语言。 4. **样式控制**:提供了丰富的CSS样式控制,可以自定义表格的外观,包括边框、颜色、字体等。 5. **数据格式化...

    DisplayTag应用

    DisplayTag 支持排序、分页、国际化、导出等多种功能,极大地提高了开发效率。 一、DisplayTag 的基本使用 DisplayTag 的基础用法是在 JSP 页面中使用 `&lt;display:table&gt;` 标签来渲染一个表格。例如,以下代码会显示...

    displaytag标签使用

    - **国际化**:DisplayTag 支持多语言,可以通过`locale`属性设置。 - **条件显示和操作**:使用`decorator`属性可以为特定列提供自定义的显示逻辑,或实现复杂的操作。 DisplayTag 提供了一套强大而灵活的标签,...

    displaytag简明使用示例

    它提供了丰富的功能,包括排序、分页、国际化等,极大地简化了网页表格的开发。下面我们将详细探讨DisplayTag的使用方法。 1. **基础使用** 最简单的使用方式是不使用`&lt;display:column/&gt;`标签。只需将List对象赋值...

    displaytag简单项目

    5. **国际化支持**:DisplayTag内置了对多语言的支持,方便在不同地区部署的应用程序。 6. **导出功能**:可以将表格数据导出为CSV、Excel、PDF等格式,便于数据分析或打印。 在这个"displaytag简单项目"中,你...

    displaytag-1.2-bin&displaytag-1.2-src Java分页组件/插件

    DisplayTag不仅支持基本的分页,还提供了诸如国际化、导出数据、自定义样式等功能,使得在处理大量数据展示时更加得心应手。 "displaytag-1.2-src"则是DisplayTag 1.2版本的源代码包,对于想要深入了解其工作原理...

    displaytag-1.1.rar_displaytag

    DisplayTag通过解析这些src属性,动态地生成HTML表格,提供排序、分页、格式化和国际化等特性。 1. **数据源**:DisplayTag支持多种数据源,包括JavaBean、List、Set、Map等。在使用src属性时,你需要指定一个...

    displaytag详细用法(中文问题已解决)

    11. **国际化支持**:DisplayTag支持多语言,通过`.properties`文件可以为不同语言提供翻译。`bundle`属性用于指定资源文件的名称。 12. **样式定制**:DisplayTag允许通过CSS定义表格的样式,包括单元格、行、表头...

    displaytag1.2及所需全部jar包和实例

    3. **国际化与本地化**:DisplayTag支持多语言环境,可以轻松地切换表格的列标题和提示信息。 4. **样式控制**:通过CSS样式,可以自定义表格的外观,如边框、颜色、对齐方式等。 5. **导出功能**:DisplayTag可以...

    displaytag 一个后台管理的分页组件

    DisplayTag 提供了丰富的定制选项,使得表格的格式化、排序、分页以及国际化等功能变得轻而易举。 Displaytag 的核心特性包括: 1. **表格呈现**:DisplayTag 可以轻松地将数据集(如List、Map或数组)渲染成HTML...

    displaytag-jar.rar_Displaytag.jar_displaytag_displaytag 1.2 jar_

    Displaytag是一个开源的Java库,专门用于创建复杂的表格布局,提供了许多高级功能,如分页、排序、国际化、导出等。在Web开发中,它作为一个JSP标签库使用,大大简化了在网页上处理表格数据的过程。"displaytag-jar....

    使用那个displaytag元件所需用的jar包

    4. **依赖的JAR文件**:DisplayTag可能还需要其他依赖库才能正常工作,例如用于国际化支持的`locale`文件夹下的JAR文件,用于格式化日期和数字的`jstl`和`fmt`标签库,以及其他如`commons-collections`, `commons-...

    displaytag

    4. **国际化与本地化**:DisplayTag支持多语言环境,可以方便地切换不同的语言设置,使得表格的标题和提示信息适应不同的语言环境。 5. **导出功能**:DisplayTag允许将表格数据导出为CSV、Excel、PDF等多种格式,...

    DisplayTag标签使用说明

    DisplayTag 的主要目标是提高可读性、可维护性和可扩展性,同时提供丰富的功能,如排序、分页、国际化和自定义样式。 **1. 简单使用DisplayTag** DisplayTag 的基本用法是通过`&lt;display:table&gt;`标签来展示数据列表...

Global site tag (gtag.js) - Google Analytics