快速业务通道

Struts 2.0中的转换器(Converter) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

Struts 2.0中的转换器(Converter)

时间:2011-06-25 BlogJava Max

在我已往的Struts 1.x项目经验中,有个问题不时的出现——在创建FormBean时,对于某个属性到底应该用String还是其它类型?

开发Web应用程序与开发传统桌面应用程序不同,Web应用程序实际上是分布个不同的主机(当然也可以同一个主机,不过比较少见)上的两个进程之间互交。这种互交建立在HTTP之上,它们互相传递是都是字符串。换句话说, 服务器可以的接收到的来自用户的数据只能是字符串或字符数组,而在服务器上的对象中,这些数据往往有多种不同的类型,如日期(Date),整数(int),浮点数(float)或自定义类型(UDT)等,如图1所示。因此,我们需要服务器端将字符串转换为适合的类型。

Struts 2.0中的转换器(Converter) - 编程入门网

图1 UI与服务器对象关系

同样的问题也发生在使用UI展示服务器数据的情况。HTML的Form控件不同于桌面应用程序可以表示对象,其值只能为字符串类型,所以我们需要通过某种方式将特定对象转换成字符串。

要实现上述转换,Struts 2.0中有位魔术师可以帮到你——Converter。有了它,你不用一遍又一遍的重复编写诸如此类代码:

Date birthday = DateFormat.getInstance(DateFormat.SHORT).parse(strDate);

<input type="text" value="<%= DateFormat.getInstance(DateFormat.SHORT).format(birthday) %>" />

好了,现在让我们来看一个例子。

转换器——Hello World

在我的上一篇文章《在Struts 2.0中国际化(i18n)您的应用程序》的最后我举了一个可以让用户方便地切换语言的例子,下面例子与其相似,但实现方法不同。

首先,如《在Struts 2.0中国际化(i18n)您的应用程序》的第一个例子一样,创建和配置默认的资源文件;

Struts 2.0中的转换器(Converter)(2)

时间:2011-06-25 BlogJava Max

接着,新建源代码文件夹下的tutorial包创建HelloWorld.java文件,代码如下:

package tutorial; import java.util.Locale; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.util.LocalizedTextUtil; public class HelloWorld extends ActionSupport {    private String msg;    private Locale loc = Locale.US;    public String getMsg() {      return msg;    }    public Locale getLoc() {      return loc;    }    public void setLoc(Locale loc) {      this .loc = loc;    }    @Override    public String execute() {      // LocalizedTextUtil是Struts 2.0中国际化的工具类,<s:text>标志就是通过调用它实现国际化的      msg = LocalizedTextUtil.findDefaultText( " HelloWorld " , loc);      return SUCCESS;    } }

然后,在源代码文件夹下的struts.xml加入如下代码新建Action:

< package name ="ConverterDemo" extends ="struts-default" >    < action name ="HelloWorld" class ="tutorial.HelloWorld" >      < result > /HelloWorld.jsp </ result >    </ action > </ package >

再在Web文件夹下,新建 HelloWorld.jsp,代码如下:

< %@ page  contentType ="text/html; charset=UTF-8" % > < %@taglib prefix ="s" uri ="/struts-tags" % > < html > < head >    < title > Hello World </ title > </ head > < body >    < s:form action ="HelloWorld"

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号