基于Struts和MVC模式的动态多语言技术在电子商务网站中的应用

来源 :中国管理信息化 | 被引量 : 0次 | 上传用户:romme
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘 要] 随着经济全球化的深入,电子商务网站对多语言的支持非常必要。常规的多语言解决方案通常采用静态方式,该方式具有实现简单,访问快速的优点,但是局限性很大,已经越来越不适应今天已然变得极为繁杂庞大的电子商务整体解决方案的需要。动态多语言技术可以有效地解决这些局限性。本文分析了动态多语言技术的原理和特点,详细阐述了如何实现基于Struts和MVC模式的Web程序的动态多语言机制,并且介绍了其在电子商务网站中的具体实现技术。
  [关键词] 动态多语言;Struts;MVC模式;电子商务;应用
  doi : 10 . 3969 / j . issn . 1673 - 0194 . 2009 . 20 . 036
  [中图分类号]F724.6;TP31 [文献标识码]A[文章编号]1673-0194(2009)20-0097-03
  
  1 静态多语言解决方案
  
  随着电子商务企业与全球各地客户的交流和商务往来的频繁和深入,电子商务网站提供多语言的支持已经非常普遍和广泛。在多语言解决方案的初期,由于业务需求,系统架构的相对简单和技术上的约束,企业一般采用的多语言实现技术是静态多语言解决方案。这种方式就是为每种语言分别准备一套页面文件,用户选择了需要的语言后,网站自动跳转到相应的页面,其他链接也是按照同样方式处理。
  这种静态的多语言技术有它的可取之处和产生的时代背景。一方面,早期的电子商务网站业务相对单一,应用相对简单,甚至仅仅是采用纯粹的静态页面来构建整个网站。另一方面,使用静态多语言处理技术实现起来很方便,用户访问网站也相对比较快速。但是,它也有很多弊端,尤其是随着电子商务的飞速发展,现在的电子网站已经远远不是简单的信息展示和商品罗列,而是包含了复杂的交互处理和业务逻辑,而且需要随着企业的发展进行快速频繁的变动和调整。在此背景下,静态多语言解决方案已经越来越不适应当今电子商务网站对于多语言支持的需求,其局限性可以归纳为:①浪费了大量系统空间。很多页面信息与语言无关,准备多套页面导致这些信息大量重复,浪费了系统空间。②非常不利于维护和扩展。网站发生变更时,需要做大量的页面修改和维护工作。③对于高度动态的网站很难支持。大量网站的信息和数据来自于数据库的动态支持,很难使用简单的静态页面来提前做好多语言支持工作。
  动态的多语言解决方案则能有效解决上述局限性。它的工作原理是:在页面上输出与语言版本有关的地方采用语言变量来表示,再根据用户不同的语言环境给语言变量赋予不同的值,从而能够实现在不同的语言环境下输出不同的语言提示信息。例如:语言变量“@title”,当用户选择的语言是英语时赋值为“Title”, 当用户选择的语言是简体中文时赋值为“标题”,这样就可以适应不同语言时的输出。通过以上的分析我们可以看出:采用动态的多语言支持技术时所有的显示页面只有一份,只有与语言相关的信息分成多个文件保存,系统根据用户的语言环境动态生成页面的提示信息。这种方法节省了系统空间,具有良好的可维护性和可扩展性。
  
  2 基于Struts和MVC模式的动态多语言实现
  
  开源框架Struts是Apache软件组织提供的一个开放源代码项目,它为Java Web应用提供了模型-视图-控制器(Model-View-Controller,MVC)模式,与Java技术最常用的Web服务器Tomcat配合使用。同时它还提供了许多可供扩展和定制的地方,使得应用程序可以方便地扩展框架,以更好地适应用户的实际需求。此外,Struts还提供了完善的国际化功能,使开发人员能方便地实现国际化的Web应用程序。目前,Struts和MVC模式由于其技术先进性,性能稳定,免费和灵活,已经成为基于Java语言的电子商务网站构建的主流技术。本文将以Struts和MVC模式为基础,详细阐述动态多语言解决方案的具体实现。
  
  2.1 服务器端的设置(Server)
  目前,最常使用的数据传送方式有两种:第一种是GET,它将表单内容附加URL之后,中间用问号连接,然后传送至指定的程序作处理;第二种传送方式为POST,这个方法是将表单内容作为一个数据体而不是URL的一部分传送给服务器的,所以URL中看不到表单内容。Tomcat Web Server对这两种参数处理的方法都采用了缺省的ISO-8859-1编码,当在服务器端用Request的getParameter( )方法获得非英文的数据时返回的是乱码,因此应将ISO-8859-1改为UTF-8以支持多种语言。如果在JSP文件中未指定,则取Java虚拟机(JVM)中的默认设置file.encoding,一般情况下,这个值是ISO-8859-1,所以首先要在所有JSP网页中指定char set为UTF-8。
  在Tomcat 5中,两种参数传递方法的编码方式修改是不一样的:
  (1)POST方法的设置。把Webappsservlets-examplesWeb-INFclassesfiltersSetCharacterEncodingFilter. class文件拷到Webapp目录/filters下,再在Web.xml里加入对过滤器的调用即可。SetCharacterEncodingFilter类接受一个encoding参数,用来指定编码方式。加入这个过滤器之后,用户所有的HTTP请求都先经过编码方式过滤后再进行处理,保证了编码的一致性。
  (2)GET方法的设置。打开Tomcat的server.xml文件,找到Connector区块,加入如下一行:URLEncoding= “UTF-8”,来解决用GET方式提交请求时出现乱码的情况。
  至此Tomcat服务器端的编码设置工作完成。
  
  2.2 视图层的设计(View)
  要实现Web程序的国际化,在网页中不能出现和特定语言相关的信息,网页中的提示信息必须都放在相应的资源文件中。在Struts-config.xml中配置message-resources,指定资源文件。例如:ApplicationResources.properties (英文资源文件)中存放系统使用英文环境时使用的提示信息,而ApplicationResources_zh.properties(简体中文资源文件)中存放的是系统使用简体中文环境时使用的提示信息。在前端视图层中使用Struts提供的bean:message标签来从资源文件中获得提示信息。Struts会根据用户终端的Locale信息调用相应的资源文件,而达到支持多种语言的目的。
  
  2.3 控制层的实现(Controller)
  Java虚拟机在启动的时候会查询操作系统,为运行环境设置默认的Locale。Web Server在其本地环境中通常会使用以上的Locale;而对于特定的终端用户,Web Server会从HTTP请求中获取Locale信息。由于Web服务器并不和客户端浏览器保持长期连接,因此每个发送到Web容器的HTTP请求中都包含了Locale信息。Struts配置文件的元素的locale属性指定是否把locale对象保存在session范围中,默认值为true。
其他文献
Abstract: 10 stock sectors are selected in Shanghai and Shenzhen stock market’s as samples. By event study, the change of stock’s cumulative abnormal return rate around the data of annual report discl
案例一:“是不是病句?”——品味妙处《船长》(苏教版小语教材第十一册)一课,最后几节描写了哈尔威船长与轮船一同沉入大海的悲壮一幕:
[摘要]《税收征管法》第二十条明确规定:“从事生产、经营的纳税人的财务、会计制度或者财务、会计处理办法和会计核算软件,应当报送税务机关备案。”《税收征管法实施细则》第二十四务规定:“从事生产、经营的纳税人应当自领取税务登记证件之日起15日内,将其财务、会计制度或者财务、会计处理办法报送主管税务机关备案。纳税人使用计算机记账的。应当在使用前将会计电算化系统的会计核算软件、使用说明书及有关资料报送主管
会计电算化把会计人员从繁重的手工核算财务数据工作中解脱出来,会计信息也更加及时、准确和全面.但财务软件在电算化数据安全方面的问题层出不穷,本文就此提出了一种新型验证码
这是个宜于心情发芽的静夜,这是本宜于思想发芽的书。一阵又一阵的燥热自心底喷涌而出,源源不绝。凌晨的清寒再也无法冷却颅腔内沸腾的脑汁和血液。从文字的深处汲取生命的热力
国库资金账务处理方法比较特殊,做好与国库资金的对账工作十分重要。本文采用用友R9财务管理软件,利用软件系统的功能设置,摸索出一套较为方便快捷的国库资金账务操作方法,轻松实
村民的流动是村落社会里的必然趋势.村民流动既有经济根源又有社会根源.村民的流出使村级党组织后备力量缺乏,影响了村民对党的认识,促使了村级党组织家族化的形成,使得农民
税收政策对促进经济增长功不可没,但是我国在扩大需求中运用税收政策还远远不够。因此,必须在吸收国外经验的基础上,寻求拉动我国经济稳定增长的税收政策。
在英语词汇教学中常会看到这种情况:学生已经掌握了一定数量的词汇,能够读懂一定难度的英文材料,却不能在说话或写作时正确地运用上大脑中储存的大部分词语。导致这一现象的