`
hxlzpnyist
  • 浏览: 43636 次
  • 性别: Icon_minigender_1
  • 来自: 信阳
社区版块
存档分类
最新评论

struts2 类型转换之一

 
阅读更多

此处 我们通过简单的例子实现对action下的某个属性字段进行类型转换 

1)输入界面

<form action="userAction.action" method="post">
    	<input type="text" name="birthday" value=""><br>
    	<input type="submit" value="提交">
 </form>

 

2)测试action ----UserAction 仅仅有个类型为Date的birthday属性 

public class UserAction extends ActionSupport{
	private Date birthday;
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	@Override
	public String execute() throws Exception {
		
		return SUCCESS;
	}	
}

 3)struts.xml配置文件 配置action

<action name="userAction" class="com.etc.sky.action.UserAction">
<result>/show.jsp</result>
</action>

 

4)自定义类型转换器类  实现 将表单输入的字符串转化为Date类型/获取birthday值的时候 将其转换为string便于页面显示

public class DateConverstor extends StrutsTypeConverter {

	/**
	 * arg1为表单传入的参数 arg2为arg1需要转换的目标对象类型此处也即为java.util.date
	 * 该方法执行在action为属性注入值之前 即set方法之前
	 * */
	@Override
	public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
		System.out.println(arg1[0]);
		if(arg2==Date.class){
			String birth=arg1[0];
			SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
			try {
				Date date=sdf.parse(birth);
				System.out.println("convertFromString"+date);
				return date;
			} catch (ParseException e) {
				e.printStackTrace();
			}
		}
		return null;
	}

	/**
	 * arg1为需要进行转换的对象 此处即为date
	 * 该方法执行在获取action属性值后 即get方法之后
	 * */
	@Override
	public String convertToString(Map arg0, Object arg1) {
		if(arg1 instanceof Date){
			SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
			Date date=(Date) arg1;
			String strDate=sdf.format(date);
			System.out.println("convertToString"+strDate);
			return strDate;
		}
		return null;
	}

}

 

5)局部类型转换资源文件配置

命名规则为:要进行类型转换的action名-conversion.properties

内容为:action下要进行类型转换的属性=类型转换器类的全称(包名+类名)

birthday=com.etc.sky.converstor.DateConverstor

 6)显示页面 注意 为了能够正常显示 转换后的信息 必须采用struts标签来读取信息

<s:property value="birthday"/>

 测试 OK.......

分享到:
评论

相关推荐

    struts2全局转换的问题

    测试源代码 博文链接:https://gyj129129.iteye.com/blog/225216

    [Struts 2权威指南--基于WebWork核心的MVC开发(高清完整版) 1/12

    第1章 Struts 2概述,第2章 Struts 2下的HelloWorld,第3章 Struts 2基础,第4章 深入Struts 2,第5章 Struts 2的类型转换,第6章 文件的上传和下载.,第7章 Struts 2的拦截器,第8章 Struts 2的输入校验,9.2 ...

    深入浅出struts2

    Struts2中的Action都是POJO,这一方面增强了Action本身的可测试性,另一方面也减小了框架内部的耦合度,而HTML表单中的输入项都被转换成了恰当的类型以供action使用。开发人员还可以通过拦截器(可以自定义拦截器...

    Struts in Action中文版

    2. 深入 STRUTS架构..................................................................................37 2.1. 随便谈谈......................................................................................

    struts in Action

    2. 深入STRUTS 架构..................................................................................37 2.1. 随便谈谈.......................................................................................

    java web开发技术大全

    《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》内容包括Web客户端技术、JSP/Servlet技术、Struts 2(*、类型转换、输入校验、上传和下载文件、Struts 2的各种标签、对 AJAX的支持等)、Spring...

    外文翻译 stus MVC

    Struts is a set of cooperating classes, servlets, and JSP tags that make up a reusable MVC 2 design. This definition implies that Struts is a framework, rather than a library, but Struts also contains...

    Spring in Action(第二版 中文高清版).part2

    16.2 协同使用Spring和WebWork 2/Struts 2 16.3 集成Spring和Tapestry 16.3.1 集成Spring和Tapestry 3 16.3.2 集成Spring和Tapestry 4 16.4 协同使用Spring和JSF 16.4.1 解析JSF管理的属性 16.4.2 解析Spring...

    java开源包2

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java面试题

    Struts2只是起到一个数据接收和转接的功能,就是Controller控制器,而传来数据的页面叫view显示层,Struts2将数据提交给进行处理的类叫Model模型层,专门进行数据处理和数据库的连接。 heap和stack有什么区别? 答:...

    FreeMark学习笔记

    为了访问数据模型中名为struts2的书的作者的名字,可以使用如下语法: book.author.name //全部使用点语法 book["author"].name book.author["name"] //混合使用点语法和方括号语法 book["author"]["name"] //全部使用...

    Spring in Action(第2版)中文版

    16.2协同使用spring和webwork2/struts2 16.3集成spring和tapestry 16.3.1集成spring和tapestry3 16.3.2集成spring和tapestry4 16.4协同使用spring和jsf 16.4.1解析jsf管理的属性 16.4.2解析springbean 16.4.3...

    ssh(structs,spring,hibernate)框架中的上传下载

     以上是Spring+Hibernate将文件二进制数据持久化到数据库的解决方案,而Struts通过将表单中file类型的组件映射为ActionForm中类型为org.apache.struts.upload. FormFile的属性来获取表单提交的文件数据。  工程...

    Spring in Action(第二版 中文高清版).part1

    16.2 协同使用Spring和WebWork 2/Struts 2 16.3 集成Spring和Tapestry 16.3.1 集成Spring和Tapestry 3 16.3.2 集成Spring和Tapestry 4 16.4 协同使用Spring和JSF 16.4.1 解析JSF管理的属性 16.4.2 解析Spring...

    haivDb4J2ee1.3

     三、数据库设计人员设计数据库结构,建议对所有表和列增加注释(对注释的利用是本工具的亮点之一,使用本工具可以方便的增加注释)。  四、使用本工具生成代码,程序员复制的是文件,或是整个java包,而不是一行...

    java开源包1

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    千方百计笔试题大全

    53、数据类型之间的转换: 14 54、字符串操作:如何实现字符串的反转及替换? 14 55、编码转换:怎样将GB2312 编码的字符串转换为ISO-8859-1 编码的字符串? 14 56、写一个函数,要求输入一个字符串和一个字符长度,...

    java面试宝典

    53、数据类型之间的转换: 14 54、字符串操作:如何实现字符串的反转及替换? 14 55、编码转换:怎样将GB2312 编码的字符串转换为ISO-8859-1 编码的字符串? 14 56、写一个函数,要求输入一个字符串和一个字符长度,...

    java开源包11

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包3

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

Global site tag (gtag.js) - Google Analytics