热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Tapestry之国际化的实现TWO

前面按照别人的想法做了一个,这次按照自己的想法自己做了一个。tml如下

前面按照别人的想法做了一个,这次按照自己的想法自己做了一个。

tml如下

<t:form t:id&#61;"locale"><t:loop source&#61;"LocalesSource" value&#61;"selectedLocale" formState&#61;"ITERATION"><t:test server&#61;"currentLocale" client&#61;"${selectedLocale.locale.language}"><img src&#61;"${selectedLocale.asset}" class&#61;"currentFlag" /><p:else><a t:type&#61;"actionLink" t:id&#61;"changeLocale" context&#61;"${selectedLocale.locale.language}" href&#61;"#"><img src&#61;"${selectedLocale.asset}" class&#61;"notCurrentFlag" />a>p:else>t:test>t:loop><div class&#61;"message">${message:greeting_message}div>t:form>

java如下&#xff1a;

public class LocaleSwitcher2
{&#64;Inject&#64;Property&#64;Symbol(SymbolConstants.SUPPORTED_LOCALES)
private String locales;&#64;Injectprivate PersistentLocale persistentLocale;&#64;Propertyprivate LocaleBean selectedLocale;&#64;Inject&#64;Path("context:images/country_zh.png")private Asset assetZh;&#64;Inject&#64;Path("context:images/country_it.png")private Asset assetIt;&#64;Inject&#64;Path("context:images/country_ja.png")private Asset assetJa;&#64;Inject&#64;Path("context:images/country_en.png")private Asset assetEn;public List getLocalesSource(){String[] countrys &#61; locales.split(",");List localeList &#61; new ArrayList();for (String country : countrys) {LocaleBean addBean &#61; new LocaleBean();addBean.setLocale(new Locale(country));if (country.equalsIgnoreCase("en")) {addBean.setAsset(assetEn);} else if (country.equalsIgnoreCase("ja")) {addBean.setAsset(assetJa);} else if (country.equalsIgnoreCase("zh")) {addBean.setAsset(assetZh);} else if (country.equalsIgnoreCase("it")) {addBean.setAsset(assetIt);} else {addBean.setAsset(assetEn);}localeList.add(addBean);}return localeList;}public ValueEncoder getLocaleEncoder(){return new ValueEncoder() {public String toClient(Locale locale){return locale.getLanguage();}public Locale toValue(String language){return new Locale(language);}};}void onActionFromChangeLocale(String language){persistentLocale.set(new Locale(language));}public String getCurrentLocale(){return persistentLocale.get().getLanguage();}}

public class LocaleBean
{
private Locale locale;private Asset asset;public Locale getLocale(){return locale;}public void setLocale(Locale locale){this.locale &#61; locale;}public Asset getAsset(){return asset;}public void setAsset(Asset asset){this.asset &#61; asset;}}

public class Test extends AbstractConditional
{&#64;Parameter(required
&#61; true)private String client;&#64;Parameter(required &#61; true)private String server;&#64;Parameterprivate boolean negate;&#64;Overrideprotected boolean test(){return client.equalsIgnoreCase(server);}}

效果图&#xff1a;

转:https://www.cnblogs.com/voctrals/archive/2013/04/02/2995531.html



推荐阅读
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
author-avatar
461067805QQ
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有