Struts 2.0中的转换器(Converter)

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

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

图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)您的应用程序》的第一个例子一样,创建和配置默认的资源文件;

时间: 2024-10-23 06:22:59

Struts 2.0中的转换器(Converter)的相关文章

在Struts 2.0中实现表单数据校验(Validation)

在写前几篇文章的时候,有些朋友建议我的写一篇关于表单数据校验的文章. 正如文章的开头所引用的<Writing Secure Code>的名言:"所有的输入都是罪恶的",所以我们应该对所有的外部输入进行校验.而表单是应用程序最简单的入口,对其传进来的数据,我们必须进行校验. 转换与校验(Conversion & Validation) 其实上篇文章,我本来是打算写表单数据校验的内容,但是经过再三思考后,还是决定先写Struts 2.0转换器的内容.原因是我认为转换是校

在Struts 2.0中国际化(i18n)您的应用程序

国际化是商业系统中不可或缺的一部分,所以无论您学习的是什么Web框架,它都是必须掌握的技能. 其实,Struts 1.x在此部分已经做得相当不错了.它极大地简化了我们程序员在做国际化时所需的工作,例如,如果您要输出一条国际化的信息,只需在代码包中加入FILE-NAME_xx_XX.properties(其中FILE-NAME为默认资源文件的文件名),然后在struts-config.xml中指明其路径,再在页面用<bean:message>标志输出即可. 不过,所谓"没有最好,只有更

struts2.0 中struts.xml文件中的错误

问题描述 开发环境:jdk5.0 + myeclipse6.0 + tomcat5.5struts.xml文件配置如下:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.

问下如何在MyEclipse7.0中配置web.xml 让它带自动提示struts标签功能

问题描述 问下如何在MyEclipse7.0中配置web.xml让它带自动提示struts标签功能那位高手知道帮解答下小弟万分感激!就是在web.xml中输入个<然后会提示 解决方案 解决方案二:问下如何在MyEclipse7.0中配置web.xml让它带自动提示struts标签功能那位高手知道帮解答下小弟万分感激!就是在web.xml中输入个<然后会提示解决方案三:其实很简单的:以spring2.0的配置文件为例(其他基本类似):进入:window->Preference...->

ASP.NET 2.0中XSLT的使用

asp.net 在asp.net 2.0中,对XML的应用大为增强,而在XSLT处理方面,也提供了新的功能.本文将简单对asp.net 2.0中XSLT的使用作简单的说明,当然本文假定读者有一定的XSLT的基础知识. 在asp.net 2.0中,XSLT方面有如下的转变和新功能: ·XslCompiledTransform - 实际上是.NET 1.0的 XslTransform ,但提供了更好的性能支持,也支持之前.net 1.0下的应用的顺利迁移. ·XsltArgumentList - 允

常用的Struts 2.0的标志(Tag)介绍

在上一篇文章<为Struts 2.0做好准备>中,我过于详细地介绍了Struts 2.0开发环境和运行环境的配置,所以,本文很少涉及的以上两方面的细节.如果,您看完<为Struts 2.0做好准备>后,还有什么不明白,或者没法运行文中例子,请联系我.我的E-MAIL:Max.M.Yuan@gmail.com. 在介绍常用标志前,我想先从总体上,对Struts 1.x与Struts 2.0的标志库(Tag Library)作比较.   Struts 1.x Struts 2.0 分类

Struts 2.0的Action讲解

有Struts 1.x经验的朋友都知道Action是Struts的核心内容,当然Struts 2.0也不例外.不过,Struts 1.x与Struts 2.0的Action模型很大的区别.   Struts 1.x Stuts 2.0 接口 必须继承org.apache.struts.action.Action或者其子类 无须继承任何类型或实现任何接口 表单数据 表单数据封装在FormBean中 表单数据包含在Action中,通过Getter和Setter获取 虽然,理论上Struts 2.0的

在SpringSide2.0中使用Tiles模板以减少网页代码的重复

在Web开发中,网页代码的重复是一个不可避免的问题.我们做的网站,所有的页面都会 有一个比较统一的页面布局,只有和数据有关的部分会不同.如果每一个页面都包含完整的 HTML代码,那么就会造成很多的重复代码,而且在修改那些公共部分(如页头和页尾)的时 候,要对多个页面进行修改,非常的麻烦. 当然,解决这个问题的办法有很多,在ASP.NET中,有一种叫做母板页的机制可以做到, 在Java开发中,也有很多的办法,最简单的就是使用在jsp文件中使用include指令,也可以 使用其它很多的第三方模板库.

ejb方法调用-EJB3.0中怎么一个类调用另外一个类的方法

问题描述 EJB3.0中怎么一个类调用另外一个类的方法 我做得的是struts+ejb3.0,在EJB中我想用BIZ调用dao,是直接New还是有别的方法...求大神指教..... 这是BIZ的方法 public List queryPet(String pelName,String pelZr,String pelType ,String px) { System.out.println("aaaaaaaaaaaaaaaaaaaa"); IDao dao=new IDaoImpl()