struts2基础---->自定义类型转换器

  这一章,我们开始struts2中自定义类型转换器的学习。

自定义类型转换器

一、定义一个继承于StrutsTypeConverter的转换类:

package com.huhx.converter;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;

public class DateConverter extends StrutsTypeConverter {
    private final DateFormat[] dateFormats = {
            new SimpleDateFormat("yyyy年MM月dd日"),
            new SimpleDateFormat("yyyyMM/dd")
    };

    @Override
    public Object convertFromString(Map context, String[] values, Class toClass) {
        String dateStr = values[0];
        for(int i = 0; i < dateFormats.length; i++) {
            try {
                return dateFormats[i].parse(dateStr);
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    @Override
    public String convertToString(Map context, Object object) {
        Date date = (Date)object;
        return new SimpleDateFormat("yyyy-MM-dd").format(date);
    }
}

二、在src下面定义一个properties文件,名为xwork-conversion.properties。struts2提供了两种方式来配置转换器

  • 应用于全局范围的类型转换器,在src下面创建一个xwork-conversion.properties,其内容为:转换类全名=类型转换器类全名
  • 应用于特定类的类型转换器,需要在特定类的相同目录下创建一个名为ClassName-conversion.properties的属性文件,其内容为:特定类的属性名=类型转换器类全名
java.util.Date=com.huhx.converter.DateConverter

三、增加一个输入时间的jsp,名为converter.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
    <form action="hello.action" method="post">
        date: <input type="text" name="date">
        <input type="submit" value="submit">
    </form>
</body>
</html>

四、修改结果页的huhx.jsp为:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
    <h2>Hello huhx.</h2>
    date: <s:property value="date"/>
</body>
</html>

五、在Action中,接收date数据,增加以下内容:

private Date date;

public Date getDate() {
    return date;
}
public void setDate(Date date) {
    this.date = date;
}

六、运行效果如下:

友情链接

时间: 01-18

struts2基础---->自定义类型转换器的相关文章

Struts2之自定义类型转换器

Struts2自定义类型转换器分为局部类型转换器和全局类型转换器 (1)局部类型转换器 如果页面传来一个参数reg.action?birthday=2010-11-12到后台action,然后属性用date类型是可以接收到的,但是如果传的是20101112这样类型的字符串,用date类型是获取不到,并且会出现错误的,struts2提供了一种类型转换器供我们使用. 以下为局部类型转换器的开发步骤a.首先要写一个类来继承DefaultTypeConverterb.然后覆盖convertValue这个

sruts2 自定义类型转换器

1.1.1    Struts2中自定义类型转换器:(了解) 类型转换的过程是双向的过程: JSP---->Action参数提交:String---Date. Action---->JSP数据回显:Date---String. 自定义类型转换器: * 1.实现TypeConverter * convertValue(java.util.Map<java.lang.String,java.lang.Object> context, java.lang.Object target, j

struts2自定义类型转换器

首先,何为struts2的类型转换器? 类型转换器的作用是将请求中的字符串或字符串数组参数与action中的对象进行相互转换. 一.大部分时候,使用struts2提供的类型转换器以及OGNL类型转换机制即可满足大部分类型转换需求.如: 类User.java package models; public class User { private String username; private String password; public String getUsername() { retur

Struts2 自定义类型转换器

Struts2自定义类型转换器分为局部类型转换器和全局类型转换器 (1)局部类型转换器 如果页面传来一个参数reg.action?birthday=2010-11-12到后台action,然后属性 用date类型是可以接收到的,但是如果传的是20101112这样类型的字符串,用date类型是获取不到,并且会出现错误的,struts2提供了一 种类型转换器供我们使用. 以下为局部类型转换器的开发步骤a.首先要写一个类来继承DefaultTypeConverterb.然后覆盖convertValue

Struts2框架的自定义类型转换器

前言:对于java的基本数据类型及一些系统类(如Date类.集合类),Struts2提供了内置类型转换功能,但是也有一定的限制.所以就演示出自定义类型转换器 一.应用于局部类型转换器 eg.用户登录出生日期只能用2016-06-09的方式才能转化成功,那么2016/06/09就不能转换成功所以就引出来我们的自定义类型转换器 1首先我们将做准备工作 1)login.jsp注册页面 <%@ page language="java" import="java.util.*&q

[原创]java WEB学习笔记67:Struts2 学习之路-- 类型转换概述, 类型转换错误修改,如何自定义类型转换器

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

Struts2类型转换(二)-自定义类型转换器

一.自定义类型转换器 1). 为什么需要自定义的类型转换器 ? 因为Struts不能自动完成字符串到引用类型的转换. 2). 如何定义类型转换器? I. 开发类型转换器的类: 扩展 StrutsTypeConverter 类: II. 配置类型转换器. 有两种配置方式 ①. 基于字段的配置: > 在字段所在的 Model(可能是 Action,也可能是一个JavaBean) 的包下, 新建一个 ModelClassName-conversion.properties 文件 > 在该文件中输入键

自定义类型转换器converter

作用:目前将日期转换成string,将string转换成我想要的类型   0509课件里讲 一.数据类型转换在web应用程序中,数据存在两个方向上的转换:1.当提交表单时  表单数据以字符串的形式提交给服务器,在服务器端转换成不同的Java数据类型 2.当需要在页面显示数据时  将不同的Java数据类型转换为对应的字符串格式显示输出 二.Struts2内置的类型转换Struts2内置了常用类型的自动转换功能,支持常见数据类型与字符串之间的转换 三.自定义类型转换1.编写自定义类型转换器,继承St

Struts2实现集合类型转换器

Struts2只提供了一些int,double等基本类型的数据转换,但对于一些非基本类型的数据,Struts2则提供了很 好的扩展,即让需要转换的对象集成DefaultTypeConverter类或者StrutsTypeConverter类,获得一个类型转换器的入口,从而实现开发者自己的类型转换器,完成字符串和自定义符合类型之间的转换. Struts2中有内建的类型转换器和自定义类型转换器以及集合类型转换器,这里我主要介绍集合类型转换器, 有些时候我们需要再页面上批量输入一些数据时,这是就需要使