`
wangjian5748
  • 浏览: 209645 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

extremecomponents使用struts2国际化信息的方法

阅读更多

有两种方法来实现该功能:间接法、直接法
第一种:间接法,使用el表达式与struts2的tag来写,这种方法比较繁琐,比如:
<s:set name="username" value="getText('user.username')" scope="page" />
<ec:table items="users" var="user" tableId="user" form="userForm"
          view="multiCompact"
          action="${ctx}/system/listUser.action" locale="${i18n_locale}">
  <ec:row>
    <ec:column property="username" title="${username}" />
  </ec:row>
</ec:table>

第二种:直接法,该方法是利用ec提供的扩展点来实现,这主要得益于ec的良好设计,该方法有两个步骤:
1.定义个实现org.extremecomponents.table.core.Messages结构的类

 

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

import javax.servlet.jsp.PageContext;

import org.apache.struts2.views.jsp.TagUtils;
import org.extremecomponents.table.context.Context;
import org.extremecomponents.table.core.Messages;
import org.extremecomponents.table.resource.TableResourceBundle;

import com.opensymphony.xwork2.TextProvider;
import com.opensymphony.xwork2.util.ValueStack;

public class MessagesStruts2Adapter implements Messages ...{

    
private TextProvider textProvider = null;

    
private Messages defaultMessages;

    
public MessagesStruts2Adapter() ...{
        
super();
        
this.defaultMessages = new TableResourceBundle();
    }


    
public void init(Context context, Locale locale) ...{
        
// 先读取extremecomponents自带的国际化文件
        this.defaultMessages.init(context, locale);

        
if (context.getContextObject() instanceof PageContext) ...{
            PageContext pageContext 
= (PageContext) context.getContextObject();
            ValueStack stack 
= TagUtils.getStack(pageContext);
            
for (Object o : stack.getRoot()) ...{
                
if (o instanceof TextProvider) ...{
                    
this.textProvider = (TextProvider) o;
                    
break;
                }

            }

        }

    }


    
public String getMessage(String code) ...{
        
return getMessage(code, null);
    }


    
public String getMessage(String code, Object[] args) ...{
        
// 优先查找struts2的配置文件,然后再查找ec自带的配置文件
        List<Object> theArgs = null;
        
if (args != null...{
            theArgs 
= new ArrayList<Object>();
            
for (Object arg : args) ...{
                theArgs.add(arg);
            }

        }


        String message 
= null;
        
if (this.textProvider != null...{
            message 
= this.textProvider.getText(code, null, theArgs);
        }

        
if (message == null...{
            message 
= defaultMessages.getMessage(code, args);
        }


        
return message;
    }

}

 

2.在extremecomponents的配置文件中配置该实现类
 

分享到:
评论

相关推荐

    extremecomponents

    2. **数据绑定**:学习如何将后端数据模型与列表控件绑定,这可能涉及到JavaBean、Entity类以及JPA(Java Persistence API)的使用。 3. **事件处理**:理解事件监听器的概念,例如,当用户点击行或改变排序时,...

    eXtremeComponents

    eXtremeComponents控件指南

    eXtremeComponents详解

    - **eXtremeComponents中文指南1.doc**: 这份文档深入介绍了EC的基本概念和使用方法,是初学者入门的必备资料。 - **eXtremeComponents中文指南2.doc**: 进阶指南,涵盖更多高级特性和实战技巧。 - **...

    eXtremeComponents-1.0.4.zip

    本文将深入探讨eXtremeComponents的核心特性和使用方法。 首先,eXtremeComponents是一个开源的Java库,专注于提供高质量的JSP标签库。它主要设计用于处理复杂的数据展示,特别是表格形式的数据。在版本1.0.4中,这...

    eXtremeComponents组件

    2. `Examples` 文件夹:包含各种示例项目,演示了如何在实际场景中使用组件。 3. `Libs` 文件夹:存储了组件库的DLL或JAR文件,这些是开发过程中实际引用的库。 4. `Docs` 文件夹:可能包含组件的API文档和用户指南...

    eXtremeComponents介绍

    此外,EC还支持国际化,适应多语言环境,同时提供了良好的文档和示例代码,方便开发者学习和使用。 **ecside** ecside是eXtremeComponents的一个重要组成部分,是一个基于Java的轻量级Web框架。它的设计目标是简化...

    extremeComponents源代码

    2. **模块化编程**:为了便于管理和维护,源代码可能会使用模块化技术,如 CommonJS、AMD 或 ES6 模块。了解如何导入和导出模块,将有助于复用代码并保持代码结构清晰。 3. **事件驱动编程**:Web 组件通常基于事件...

    eXtremeComponents-1.0.1+中文API___分页工具

    4. **API支持**:中文API文档详细介绍了如何集成和使用分页工具,包括初始化、数据绑定、事件监听等关键操作,降低了学习和使用成本。 5. **示例代码**:除了API文档,该分页工具还提供了实例代码,开发者可以直接...

    eXtremeComponents详尽文档包

    通过这些文档,初学者不仅能够掌握EC的基本用法,还能了解到高级特性,如数据绑定、皮肤更换、国际化支持等。此外,文档通常还会包含故障排除指南和常见问题解答,帮助开发者解决在使用过程中遇到的问题。 总之,...

    extremeComponents开发指南

    extremeComponents开发指南,快速掌握extremeComponents开发

    extremecomponents 包

    extremecomponents 包

    分页组件extremeComponents的使用

    6. **国际化支持**:XC分页组件还支持多语言,可以在不同地区和语言环境下正常使用。 在具体实现过程中,开发者通常需要以下几个步骤: 1. **引入依赖**:将下载的XC分页组件Jar包添加到项目的类路径中。 2. **...

    extremeComponents中文文档

    文档会阐述如何集成和切换不同的语言环境,以满足国际化的项目需求。 8. **无障碍性(Accessibility)** 为了使组件对所有用户友好,包括有特殊需求的人群,文档会介绍如何确保组件符合无障碍性标准,如WAI-ARIA...

    ECTable配置方法.txt eXtremeComponents集成方法

    4. **国际化支持**:如果项目面向国际用户,需要确保ECTable支持多语言环境,可以通过修改`extremecomponents.properties`文件中的相关配置实现。 通过遵循以上步骤,您可以顺利完成ECTable的配置,并利用其强大的...

    eXtremeComponents 源代码

    eXtremeComponents提供的组件可能包括但不限于:表格控件(用于显示大量数据)、图表组件(用于数据可视化)、对话框和窗口管理器(提升用户体验)、以及各种UI小部件(如按钮、滑块、进度条等)。这些组件通常具有...

    eXtremeComponents-1.0.3

    【eXtremeComponents-1.0.3】是一个软件组件包,它的出现是为了提供一套高效、易用的开发工具,以帮助程序员在构建应用程序时提高生产力和代码质量。这个版本1.0.3是该组件集合的一个稳定版本,用户反馈良好,表明它...

    eXtremeComponents控件分页导出数据Demo.rar

    在实际应用中,开发者还需要关注性能优化,比如使用虚拟化技术减少内存消耗,或者使用异步加载提高用户体验。 总之,"eXtremeComponents控件分页导出数据Demo"是一个很好的学习资源,它直观地展示了如何在.NET环境...

    (3.0版本)自己写的struts2+hibernate+spring实例

    jar包:项目中除了使用了struts2,hibernate3.0和spring1.8以外(用spring2.0的包也可以.不能低于1.8的包.)还是用了junit,ajax,第三方的table组件.等等.所以需要下载相对应的包. 为了上传jar.我专门申请了一个网盘.所有...

    eXtremeComponents1.0.1.jar

    eXtremeComponents1.0.1.jar

Global site tag (gtag.js) - Google Analytics