extremecomponents使用struts2国际化信息的方法
来源:互联网 发布:咖啡厅收银软件下载 编辑:程序博客网 时间:2024/05/23 01:59
有两种方法来实现该功能:间接法、直接法
第一种:间接法,使用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;
}
}
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使用struts2国际化信息的方法
- extremecomponents使用struts2国际化信息的方法
- 使用Struts2关于页面信息国际化(简单的)
- struts2--输入校验的国际化信息
- struts2信息国际化
- Struts2配置国际化信息
- eXtremeComponents使用
- struts2中页面语言国际化的方法
- struts2中页面表示国际化的方法
- struts2国际化的两种方法
- 《研磨struts2》第九章 国际化 之 9.5 Struts2访问国际化信息的不同方式
- struts2的国际化的配置与使用
- 复习struts2之输出带有占位符的国际化信息
- struts2输出带有占位符的国际化信息
- struts2输出带有占位符的国际化信息
- Struts2 输出带有占位符的国际化信息
- struts2的验证特定方法,验证框架,以及国际化的使用案例
- 国际化与Struts2的国际化
- 不知道学习点什么好
- MFC程序员的WTL指南: Part I - ATL 界面类
- Struts构架中的Session对象创建和控制
- 网桥原理及源代码详解
- JSP页面自动生成html页面或任何格式页面
- extremecomponents使用struts2国际化信息的方法
- Java中计算任意两个日期之间的工作天数
- 通过注册表让烦人程序不再自动启动
- Java中几种常用数据类型之间转换的方法
- ARP协议揭密
- Ruby on Rails 的检验方法(Validation Helpers)大全
- jsp从数据库取得数据作为下拉菜单选项的实现
- 经验共享:HP-UX常用操作命令
- 用JSP编写文件上传的程序