`
lfwer
  • 浏览: 87073 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring自动绑定多种date类型格式

 
阅读更多

总共方法有三种:

 

第一种:繁重操作解决方式:

 

在 Controller 里面不写 InitBinder 方法; 直接在请求实体类里面将DATE 类型的字段 注解

@DateTimeFormat("格式")

 

 

 

第二种:比较繁重操作解决方式:

 

在 Controller 里面写 InitBinder 方法; 里面写多个日期格式;将特殊的标出;如下代码:

 

 

@InitBinder
    public void initBinder(WebDataBinder b) {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        b.registerCustomEditor(Date.class, new CustomDateEditor(df, true));
        
        DateFormat df2 = new SimpleDateFormat("yyyy-MM");
        String[] fileds = {"字段名", "字段名", "字段名"};
        for(String filed : fileds){
            b.registerCustomEditor(Date.class, filed, new CustomDateEditor(df2, true));
        }
    }

 

第三种:轻松解决方式:

 

自己写一个DATE数据绑定类;然后在Controller 里面写 InitBinder 方法里面应用;如下代码

 

package com.luwen.dai.util;
 
import java.beans.PropertyEditorSupport;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
 
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
public class SpecialDateEditor extends PropertyEditorSupport {
    
    private final Logger logger = LoggerFactory.getLogger(getClass());
 
    @Override
    public void setAsText(String text) throws IllegalArgumentException {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = null;
        try {
            //防止空数据出错
            if(StringUtils.isNotBlank(text)){
                date = format.parse(text);
            }
        } catch (ParseException e) {
            format = new SimpleDateFormat("yyyy-MM-dd");
            try {
                date = format.parse(text);
            } catch (ParseException e1) {
                format = new SimpleDateFormat("yyyy-MM");
                
                try{
                    date = format.parse(text);
                }catch (Exception e2) {
                    logger.error("自动绑定日期数据出错", e);
                }
            }
        }
        setValue(date);
    }
    
}

 

 

然后在initBinder 方法里直接引用

 

@InitBinder
    public void initBinder(WebDataBinder b) {
        b.registerCustomEditor(Date.class, new SpecialDateEditor());
    }

 

分享到:
评论

相关推荐

    spring 属性参考与自动绑定

    当`autowire`属性设置为`byType`时,Spring会尝试根据类型自动匹配bean。这意味着如果容器中存在一个类型匹配的bean,Spring会自动将其注入到相应的属性中。例如: ```xml <bean id="dateBean" class="java.util....

    Spring+MVC数据绑定大全+

    在 Spring MVC 中,默认情况下支持多种数据类型的绑定,包括基本数据类型、集合类型、日期类型、枚举类型等。通过查看 Spring 框架的源码,可以发现 Spring 支持转换的数据类型已经很多了。在 org.springframework....

    spring数据格式转换

    此外,Spring还支持对复杂类型的转换,如`CustomCollectionEditor`用于`String`到`Collection`,`CustomDateEditor`用于`String`到`java.util.Date`,以及`URLEditor`用于`String`到`URL`的转换。 在处理JavaBean...

    spring mvc3.1.0 日期自动转换

    开发者可以自定义转换器,也可以使用Spring提供的默认转换器,如`StringToDateTimeConverter`,它能识别多种常见的日期格式。 3. 配置转换器:在Spring MVC配置中,你可以通过`<mvc:annotation-driven>`标签启用...

    struts的form不能初始化java.util.Date类型

    - **使用Struts的datetime标签**:如果使用Struts的标签库,可以使用`<html:datetime>`或`<bean:write>`标签来处理Date类型,这些标签会自动处理日期的显示和转换。 - **使用Java 8的LocalDate/LocalDateTime**:...

    java开发之SpringMVC + Spring + SpringJDBC整合.zip

    SpringJDBC通过JdbcTemplate或NamedParameterJdbcTemplate提供了一套模板方法,使得SQL查询和参数绑定更加直观和安全。此外,SpringJDBC还支持事务管理,可以方便地进行回滚和提交操作,确保数据一致性。 在整合这...

    Spring boot如何配置请求的入参和出参json数据格式

    这种方法灵活且健壮,能处理多种日期格式的输入。 接下来,为了让Spring Boot能够使用我们定义的`DateEditor`,我们需要在配置类中注册它。创建一个配置类,如 `WebConfig`,并重写 `configureMessageConverters` ...

    Spring MVC注解与数据绑定(含源码及结果图)

    1、有如下一个订单信息页面order.jsp(置于/WEB-INF/jsp目录下),按以下步骤实现一个使用POJO类型完成表单数据传输的SpringMVC数据绑定项目。 (1) 创建一个Order类来封装上述订单信息,其中各个属性的名称和数据类型...

    Spring5.1中文参考指南.pdf

    - **Spring类型转换**:Spring支持多种类型转换策略。 - **Spring字段格式化**:如何格式化日期等类型字段。 - **配置全局Date和Time格式**:统一配置日期时间格式。 - **SpEL(Spring Expression Language)** -...

    extjs日期显示(如何转换日期格式)

    extjs 中显示日期时间的方法是在后台传递来的数据是 Date 类型的数据,日期时间格式为 timestamp,是 13 位的 long data 数字类型的时间。在 extjs6 中,可以使用配置消息转换器对 responseBody 输出日期格式进行...

    专题资料(2021-2022年)SpringMVC数据类型转换要点.doc

    - **格式化显示**:`Spring`的标签库(如`spring:bind`和`form:input`)能自动调用`PropertyEditor`或者`Formatter`进行格式化输出,并显示验证错误信息。 `ConversionService`和相关的注解验证使得开发者能够更...

    扩展SpringMVC以支持更精准的数据绑定1

    在默认情况下,Spring MVC使用`WebDataBinder`来处理数据绑定,它可以将请求参数与Java对象的字段进行匹配,并通过类型转换器(`Converter`)和格式化器(`Formatter`)将字符串值转化为对象类型。如果遇到无法直接...

    27 Spring MVC数据绑定InitBinder揭秘慕课专栏1

    背景在使用 SpingMVC 框架的项目中,经常会遇到页面某些数据要转换成类型是 Date、Integer、Double 等的数据绑定到控制器的实体。Sprin

    SSM自定义参数绑定

    然而,有时我们需要根据项目需求定制这种映射方式,例如处理自定义的数据类型或者有特殊格式的请求参数。 首先,我们可以通过实现`HandlerMethodArgumentResolver`接口来自定义参数解析器。这个接口有两个核心方法...

    springmvc类型转换.md

    Spring MVC提供了多种类型转换的方式,包括使用注解、自定义编辑器、以及实现`Converter`接口等。开发者可以根据实际需求选择合适的方法来进行类型转换,从而提高开发效率并确保数据的一致性和准确性。在实践中,...

    Spring boot 配置参数一览.pdf

    - `spring.mvc.date-format`:设置应用的固定日期格式,例如'dd/MM/yyyy'。 - `spring.mvc.message-codes-resolver-format`:设置消息代码的格式。 - `spring.view.prefix`:Spring MVC视图的前缀。 - `spring.view....

    spring-data-jpa-reference1.3.pdf

    - **Spring MVC中的域类Web绑定**: 可以使用Spring Data JPA中的`SimpleJpaRepository`来实现自动的Web绑定功能,方便进行表单验证和数据填充。 - **Web分页**: 支持通过`Pageable`接口来进行分页查询。 - **...

    spring_-mvc-master.zip

    Spring MVC提供了对输入数据的自动转换和输出数据的格式化功能,如String到Date的转换,数字的格式化等。 10. **Spring MVC配置** 创建Spring MVC项目时,我们需要配置Spring的XML或Java配置文件,定义...

    SpringMVC之DataBinding和Validation--Validator,PropertyEditor,Converter,Formatter

    Spring MVC会自动寻找合适的`PropertyEditor`并将参数值转换为正确的类型。 `Converter`和`Formatter`在Spring 3.0之后引入,它们在`PropertyEditor`之上提供了更现代和灵活的数据转换机制。`Converter`负责将一种...

    SpringMVC数据类型转换超详细介绍

    从Spring 3开始,SpringMVC引入了更为强大的数据绑定框架,解决了上述问题,并提供了更加灵活和强大的数据转换、验证及格式化能力。 ##### 1. 类型转换 - **核心组件**:`ConversionService`接口及其具体实现类`...

Global site tag (gtag.js) - Google Analytics