14.SpringMVC核心技术-类型转换器】的更多相关文章

类型转换器 在前面的程序中,表单提交的无论是 int 还是 double 类型的请求参数,用于处理该请求 的处理器方法的形参, 均可直接接收到相应类型的相应数据,而非接收到 String 再手工转换. 那是因为在 SpringMVC 框架中,有默认的类型转换器. 这些默认的类型转换器,可以将 String 类型的数据,自动转换为相应类型的数据 但默认类型转换器并不是可以将用户提交的 String,转换为所有用户需要的类型.此时,就需要自定义类型转换器了. 例如,在 SpringMVC 的默认类型…
SpringMVC 自定义类型转换器  我们在使用SpringMVC时,常常需要把表单中的参数映射到我们对象的属性中,我们可以在默认的spring-servlet.xml加上如下的配置即可做到普通数据类型的转换,如将String转换成Integer和Double等: <mvc:annotation-driven /> 或 <bean id="conversionService" class="org.springframework.format.suppor…
之前的教程,我们都已经学会了如何使用Spring MVC来进行开发,掌握了基本的开发方法,返回不同类型的结果也有了一定的了解,包括返回ModelAndView.返回List.Map等等,这里就包含了传统的开发方式,和写接口的开发方式. 传参我们也学了简单参数和复杂参数的传递和接收,但是在参数传递过程中,常常需要把表单中的参数映射到我们对象的属性中,比如前台传的是2018-01-01字符串,可是我们的实体类中定义的是Date类型的变量,这时就需要用到SpringMVC的自定义类型转换器了. 一.配…
一.什么是springmvc类型转换器? 在我们的ssm框架中,前端传递过来的参数都是字符串,在controller层接收参数的时候springmvc能够帮我们将大部分字符串类型的参数自动转换为我们指定的参数,这就是springmvc为我们提供的类型转换器.但是springmvc提供的类型转换器只能够转换指定格式的参数,例如:我们参数中传递time=2020/08/18,在controller中我们就可以通过Date类型的参数接收它,springmvc能够自动将该日期字符串转换为日期对象.但是如…
先准备一个JavaBean(Employee) 一个Handler(SpringMVCTest) 一个converters(EmployeeConverter) 要实现的输入一个字符串转换成一个employee的对象 1.写一个jsp <h1>自定义类型的转换器</h1> <form:form action="testConversionServiceConverer"> <input type="text" name=&q…
这个convter类型转换是器做什么用的? 他是做类型转换的,或者数据格式化处理.可以把数据在送到controller之前做处理.变成你想要的格式或者类型.方便我们更好的使用. 比如说你从前台传过来一个日期,它的格式不是你想要的,这时你就可以自定义一个controller转换器,帮你做日期格式化这件事.就像我们以前, 写的工具类一样,只不过,springmvc给我们提供了这种功能,在更方便我们使用.在需要时自动帮我们做这件事了.接下来看看它是怎样实现的? 这里演示把一个string字符串转换成一…
课时13 自定义类型转换器 局部(对某个action类) package tutorial; import java.util.Date; public class HelloWorld { private Date birthday; public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { System.out.println(birthday); this.birthday…
对于MVC框架,参数绑定一直觉得是很神奇很方便的一个东西,在参数绑定的过程中利用了属性编辑器.类型转换器 参数绑定流程 参数绑定:把请求中的数据,转化成指定类型的对象,交给处理请求的方法 请求进入到DisptacherServlet,卸下请求中的数据 DisptacherServlet将请求中的数据发送给Controller 获取Controller需要接收的参数类型,将参数类型和请求数据发送给DataBinder DataBinder将参数类型和请求数据再发给TypeConverter,由Ty…
 ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 例子很简易,要明白的是思路,话不多说,开讲 上篇博客不是说springmvc默认的日期转换格式是yyyy/MM/dd吗?如果我们要别的格式怎么办?(例如yyyyMMdd,yyyy-MM-dd,yyyy年MM月dd日)就用到了自定义日期类型转换器 案例: 1.自定义类型转换器,实现泛型接口Converter package cn.dawn.day20selfconverter.converter; impo…
在使用springmvc时可能使用@RequestParam注解或者@RequestBody注解,他们的作用是把请求体中的参数取出来,给方法的参数绑定值. 假如方法的参数是自定义类型,就要用到类型转换器,否则就报错.…
处理器的写法: 类型转换器的写法: 类型转换器在springmvc.xml中的配置如下: index.jsp的写法:…
自定义类型转换器的步骤: 1.定义类型转换器 2.类型转换器的注册(在springmvc配置文件处理) 来解决多种日期格式的问题: springmvc 类型转换器 表单数据填错后返回表单页面(接上面的代码有关) 上面这样写存在提示信息不好的问题,解决思路是在异常信息中查看哪个input输入有误,给出对应的提示信息即可…
字符串转换日期: 1.自定义一个类 /** * 字符串转换日期 */ public class StringToDateConverter implements Converter<String, Date> { /** * String source 传入进来字符串 * @param source * @return */ @Override public Date convert(String source) { //判断 if(source == null){ //抛出运行时异常 thr…
SpringMVC内部有类型转换器,当从Request中获取参数后,放入Controller中时,会根据Controller中指定的类型进行自动转换,当指的类型SpringMVC不能自动转换时,就需要自定义类转换器 项目目录树: 请求页面index.jsp <%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <%@…
package com.hope.utils;import org.springframework.core.convert.converter.Converter;import org.springframework.util.StringUtils;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/** 第一步…
mvc是基于组件的方式 类型转换的接口Converter,想实现类型转换,必须实现这个接口 Ctrl+N搜索 converter 这是一个接口类 它有很多的实现类.S是字符串.后面T是指要转换类型 新建包untils.下面创建类StringToDate 实现Converter的接口.这里注意导包 不要倒错了. 字符串转为日期类型 实现接口内的方法 parse转换加一个try catch 配置自定义类型转换器 自己写的转换器在组件内注册.里面有个conerters 是set类型的 类的全路径 自定…
springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序 http://www.360doc.com/content/14/0309/19/834950_359080244.shtml…
今天就写写springmvc配置Data类型转换器 首先在创建一个转换器的包cn.my.ssm.controller.converter,创建一个CustomDateConverter类实现Converter<String, Date>接口的public Date convert(String source)方法 package cn.my.ssm.controller.converter; import java.text.ParseException; import java.text.S…
mybatis入门系列三之类型转换器 类型转换器介绍 mybatis作为一个ORM框架,要求java中的对象与数据库中的表记录应该对应 因此java类名-数据库表名,java类属性名-数据库表字段名,java类属性类型-数据库字段类型 前面两个都容易设置,但是第三点要求经常会出现java类型和数据库的存储类型不一样, 例如java类型是String,数据库中存储的是char.varchar.text 对于一般常见的类型对应,mybatis已经内部包含了类型转换器,使String类型的java属性…
目录 异常处理 类型转换器 数据验证 文件上传与下载 拦截器 异常处理 Spring MVC中, 系统的DAO, Service, Controller层出现异常, 均通过throw Exception向上抛出, 最后由中央处理器DispatchServlet交由全局异常处理器进行异常处理, 如下图所示 常用的Spring MVC异常处理方式主要有三种: 使用系统定义好的异常处理器SimpleMappingExceptionResolver 使用自定义异常处理器 使用异常注解 SimpleMap…
需求:提交一个字符串到后端的java.sql.Time类型,就报错了: Failed to convert property value of type [java.lang.String] to required type [java.sql.Time] 正常提交到java.util.Date类型是没有问题的. 所以这里就需要扩展内置的springmvc的转换器 代码如下: WebConfig : 添加新的类型转换器 import javax.annotation.PostConstruct;…
自定义类型转换器使用场景: jsp 代码:  <!-- 特殊情况之:类型转换问题 --> <a href="account/deleteAccount?date=2018-01-01">根据日期删除账户</a> 控制器代码:  @RequestMapping("/deleteAccount") public String deleteAccount(String  date) { System.out.println("…
页面录入的字符串:2019/12/05可以映射到实体的日期属性上,但是如果是录入2019-12-05就会报错400 bad request,想要以2019-12-05日期格式的方式映射到实体的日期属性上,需要自定义类型转换器,主要步骤如下: 1.  自定义类实现Convertro<S,T>接口 2.Springmvc.xml中配置ConversionServiceFactoryBean,其属性上配置我们自定义的转换器 3.欲使配置的转换器生效,需要将springmvc.xml的<mvc:…
方法一: 实现spring mvc 自带的 Formatter 接口 1.创建一个类来实现Formatter接口 import org.springframework.format.Formatter; import java.text.ParseException; import java.util.Locale; public class MyFormatter implements Formatter<CardId> { @Override public String print(Car…
前文我们有了IOC的源码基础以及SpringMVC的基础,我们便可以进一步深入理解SpringMVC主要实现原理,包含DispatcherServlet的初始化过程和DispatcherServlet处理请求的过程的源码解析.本文是第二篇:DispatcherServlet处理请求的过程的源码解析.@pdai Spring框架系列(14) - SpringMVC实现原理之DispatcherServlet处理请求的过程 DispatcherServlet处理请求的过程? 回顾整理处理流程 doG…
类型转换器引入 为什么页面上输入"12",可以赋值给Handler方法对应的参数?这是因为框架内部帮我们做了类型转换的工作.将String转换成int 但默认类型转换器并不是可以将用户提交的String,转换为用户需要的所有类型.此时 ,就需要自定义类型转换器了 案例:自定义日期类型转换器 要求日期格式为:yyyy/MM/dd ---单日期(在Controller定义了一个方法,主要是对参数有要求) MyCOntroller.java package cn.controller; im…
类型转换器1.引入在Struts2中,请求参数类型不仅可以是String,还可以是其它类型.如,定义一个请求参数birthday为Date类型,给其赋值为1949-10-1,则birthday接收到的不是字符串“1949-10-1”,而是日期类型.但,需注意的是,对于基本数据类型,需将其定义为包装类型.实例:请求参数值的类型-- typeconverterStep1:编写index.jsp与show.jspStep2:编写Birthday_ActionStep3:编写web.xml与struts…
一.类型转换器 1.在动作类action中,声明和表单中name属性的值同名的属性,提供get和set方法,struts2就可以通过反射机制,从页面中获取对应的内容 package com.kdyzm.convert; import com.opensymphony.xwork2.ActionSupport; public class TypeConvertAction extends ActionSupport{ private static final long serialVersionU…
常规的String,int能自动转换,但是,有些类型不是这么简单,比如输入字符串,但需要Date.自定义类型,因此需要自定义类型转换类型转换器分全局和局部按惯例,局部的优先级高于全局 需求: 1.输入yyyy-mm-dd,回显yyyy/mm/dd 2.输入电话号码,如果是座机010-11111111,回显(010)11111111 如果是手机,回显18777777777 这里对于需求1,采用局部类型转换器,对于需求2,采用全局类型转环器 Action:C1.java package org.ah…
Struts2的类型转换器   如何实现Struts2的类型转换器? * 继承StrutsTypeConverter * 覆盖convertFromString和convertToString   注册类型转换器 * 局部类型转换器,局部类型转换器只对当前Action起作用,需要提供如下配置文件: MyActionName-conversion.properties,MyActionName指需要使用转换器的Action名称 "-conversion.properties"固定字符串,…