`

struts1自定义类型转换

 
阅读更多
jsp前台中接收的均是string类型的数据,struts中有内至的转换器,能转换常规类型的数据,如int,float, double, string, boolean(Y/N 1/0 true/false on/off), .时间型:java.sql.Date(2009-12-23)可以转换。但java.util.Date不能转换。那我们就写一个utilDate的转换器。

若数据为空,int, 默认是0 , double默认是0.0, boolean默认是false. 
java.sql.Date 前台不能为空,且格式必须是yyyy-MM-dd类型

java.sql.Timestamp 要求:Timestamp format must be yyyy-mm-dd hh:mm:ss.fffffffff 如:2010-02-12 12:25:20.0



utilDate的转换器

类:

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

import org.apache.commons.beanutils.Converter;

/**
* java.util.Date struts转换器
* @author dell
*
*/
public class UtilDateConverter implements Converter {

public Object convert(Class type, Object value) {

   Date d = null;
   if(value == null){
    return value;
   }
        if(value instanceof String){
        SimpleDateFormat sfd = new SimpleDateFormat("yyyyy-MM-dd");
        try {
     d = sfd.parse((String) value);
    } catch (ParseException e) {
     e.printStackTrace();
    }
        }
        return d;
}

}


转换器初始化加载方式2种:

一是Sverlet初始化init


import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

import org.apache.commons.beanutils.ConvertUtils;

public class UtilDateServlet extends HttpServlet {


/**
* 初始化:注册UtilDateConverter转换器
*
* @throws ServletException if an error occure
*/
public void init() throws ServletException {
    ConvertUtils.register(new UtilDateConverter() , Date.class );
}

}

web.xml

<!-- java.util.Date struts转换器初始化 -->
<servlet>
    <servlet-name>UtilDateServlet</servlet-name>
    <servlet-class>com.zd.util.UtilDateServlet</servlet-class>
    <load-on-startup>3</load-on-startup>
</servlet>


二、是用plugin加载

import javax.servlet.ServletException;

import org.apache.commons.beanutils.ConvertUtils;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;

/**
* PlugIn方式加载 java.util.Date转换器
* @author dell
*
*/
public class UtilDatePlugIn implements PlugIn {


public void init(ActionServlet servlet, ModuleConfig config)
    throws ServletException {
   ConvertUtils.register(new UtilDateConverter() , Date.class );
}

public void destroy() {
   // TODO Auto-generated method stub

}


}

struts-config.xml

<!-- 嵌入java.util.Date类型转换器 -->
<plug-in className="com.util.UtilDatePlugIn" />



=============================================

自定义struts Converter解决不能输入空日期



http://hi.baidu.com/wodehao1985h/blog/item/111709189714024d42a9ad79.html



=============================================

在Struts中的时间类型转换
在struts中前台页面只能传String类型的值,时间类型就需要在后面转换了。DateConvertUtil类:

private java.util.Date saveDate;
              //普通的set/get方法
              public void setSaveDate(java.util.Date saveDate){
                  this.saveDate=saveDate;
              }
              public java.util.Date getSaveDate(){
                  return this.saveDate;
              } 
              //为Struts准备的方法,时期的格式假定是 2000-12-31 23:59:59
              public void setSaveDateAsString(String saveDate){
                 java.text.DateFormat dateFormat =new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                 this.saveDate=dateFormat.parse(saveDate);
              }
              public String getSaveDateAsString(){
                 java.text.DateFormat dateFormat =new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                 return dateFormat.Format(this.saveDate);            

在action里面获得时间类型的字符串,然后调用转换方法就可以了。Ok!!!

     
       }

 

分享到:
评论

相关推荐

    Struts2自定义类型转换

    ### Struts2自定义类型转换:深入解析与实践 #### 引言 在Web开发中,数据类型转换是一项常见的需求,特别是在用户输入的数据与后端处理的数据类型不一致时。Struts2框架提供了强大的类型转换机制,允许开发者...

    Struts自定义类型转换器

    ### Struts自定义类型转换器 #### 一、概述 在Web开发中,表单提交的数据通常是字符串形式的,而在业务逻辑处理时往往需要将这些数据转换为其他类型的对象(如日期、数字等)。Struts框架为了更好地处理这种类型...

    struts2自定义类型转换器

    然而,对于如Date这样的复杂类型,需要自定义转换器来处理。 创建自定义类型转换器的步骤如下: 1. **定义转换器类**:继承`org.apache.struts2.util.FieldConverter`或`...

    struts 2.0 自定义类型转换器 注册类型转换器 入门实例 简单实例

    1. **创建自定义类型转换器** - 创建一个类,实现`org.apache.struts2.util.TypeConverter`接口。例如,假设我们需要将字符串转换为自定义的`CustomDate`类,可以创建一个名为`CustomDateConverter`的类。 - 在这...

    struts2自定义类型转换、拦截器实例练习

    本实例练习旨在帮助你深入理解Struts2的工作原理,特别是自定义类型转换和拦截器的使用。 首先,让我们详细探讨Struts2的MVC架构。在MVC模式中,Model代表业务逻辑,View负责展示数据,而Controller则是两者之间的...

    struts2自定义数据类型转换练习

    Struts2作为一款流行的Java Web框架,其在处理用户输入数据时扮演着重要角色。...在练习中,你可以尝试创建不同的自定义转换器,并理解它们在处理不同类型数据时的作用,从而加深对Struts2数据处理机制的理解。

    传智播客struts2.1源代码_自定义类型转换器

    接着,当Struts2接收到相关参数时,会自动调用自定义转换器进行转换。 6. **调试与测试** 调试自定义类型转换器通常涉及到设置断点,观察转换过程中的变量状态,以及通过单元测试确保转换逻辑的正确性。在IDE如...

    自定义类型转换器

    自定义类型转换器是当Struts2内置的转换器无法满足特定业务需求时,开发者自行创建的一种扩展方式。然而,这里提到的"自定义类型转换器"实际上与权限控制有关,而非类型转换。描述中的内容主要涉及的是如何实现用户...

    Struts2类型转换(一)----常规类型,自定义类型,错误处理

    理解并掌握如何利用内置转换器、自定义转换器以及处理转换错误,对于构建高效、稳定的Struts2应用至关重要。通过深入学习Struts2的源码和使用相关工具,我们可以更深入地了解这些机制,并优化我们的应用程序。

    Struts2的自动类型转换及自定义类型转换[文].pdf

    Struts2是一个流行的Java web开发...总之,Struts2的类型转换机制为开发者提供了强大的灵活性和便利性,不仅可以处理基本类型,还能方便地扩展以支持自定义类型和复杂数据结构的转换,从而简化了Web应用的开发工作。

    struts2如何配置与自定义类型转换

    Struts2是一个强大的MVC框架,它在处理用户请求时涉及到数据类型的转换,这在处理复杂的表单数据或者自定义对象时尤其重要。本篇文章将详细介绍如何在Struts2中进行配置与自定义类型转换。 首先,Struts2的配置主要...

    struts2自定义编写转换类

    通常,Struts2框架内置了一些基本类型的转换器,但有时我们需要对特定的数据类型进行自定义转换,这时就需要编写自定义的转换类。下面将详细讲解如何在Struts2中实现自定义转换类。 首先,了解Struts2的转换机制。...

    struts2数据类型转换器

    但是,有时候我们可能需要自定义转换器以满足特定需求,例如处理自定义类型的属性或者对转换过程进行特殊控制。这时,我们可以创建一个新的类实现`TypeConverter`接口,然后通过在Action类或者全局配置中注册这个...

    实验4 Struts2的类型转换与OGNL表达式语言.doc

    配置自定义转换器有两种方式: - **在配置文件中声明**:可以在`struts.xml`文件中通过`&lt;constant&gt;`标签设置转换器。 - **通过属性文件注册**:可以创建一个`.properties`文件,在其中声明转换器,并通过Struts2的...

    struts2学习笔记三(第3讲.Struts2的类型转换)

    比如,如果只想在某个Action的某个字段上应用自定义转换器,可以在Action的配置中使用`conversion.properties`或者使用`@TypeConversion`注解。 在实际开发中,Struts2的类型转换有时会遇到一些问题,例如空值处理...

    Struts的自定义转换器

    自定义转换器使得Struts框架更加灵活,能够处理复杂或特殊的数据类型,提高了代码的可维护性和用户体验。通过编写自定义转换器,开发者可以确保数据转换过程符合业务规则,减少因类型不匹配导致的错误。在实际开发中...

    Struts2类型转换与输入校验 .zip

    (1) 编写一个自定义类型转换器,并基于应用程序进行全局配置,实现字符串参数与颜色值之间的转换,并将颜色值应用于视图当中。 (2) 根据实验四的图书管理系统,扩展图书新增功能,要求对新增页面表单中的每个...

Global site tag (gtag.js) - Google Analytics