Springmvc数据格式化原理及代码案例

时间:2021-05-20

1、简介

  • Converter可以将一种类型转换成另一种类型,是任意Object之间的类型转换。
  • Formatter则只能进String与任意Object对象的转换,它提供解析与格式化两种功能
    • 解析:将String类型字符串转换为任意Objec对象,
    • 格式化:将任意Objec对象转换为字符串进行格式化显示。
  • 使用Formatter
    • 实现Formatter接口定义一个类,T为要解析得到或进行格式化的数据类型。
    • 在类中实现两个方法
      • String print(T t,Locale locale):把T类型对象解析为字符串形式返回
      • T parse(String sourse,Locale locale):由字符串解析得到T类型对象。

2、示例

2.1、实体类

package com.yl.bean;import java.util.Date;public class User { private String username; private Date date; public User() { } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } @Override public String toString() { return "User{" + "username='" + username + '\'' + ", date=" + date + '}'; }}

2.2、控制器

package com.yl.controller;import com.yl.bean.User;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.servlet.ModelAndView;@Controllerpublic class UserController { @RequestMapping("/stringToDate") public ModelAndView jsonToObject(User user){ ModelAndView modelAndView=new ModelAndView(); modelAndView.addObject("user",user); modelAndView.setViewName("success"); System.out.println(user); return modelAndView; }}

2.3、jsp

<form action="${pageContext.servletContext.contextPath}/stringToDate" method="post"> 请输入日期(yyy-mm-dd):<input type="text" name="date"><br> <button type="submit">提交</button></form>

2.4、数据格式化类

package com.yl.utils;import org.springframework.format.Formatter;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;/** * 日期格式化 */public class DateFormatter implements Formatter<Date> { /** * 字符串转Date * @param text * @param locale * @return * @throws ParseException */ @Override public Date parse(String text, Locale locale) throws ParseException { SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd"); return sf.parse(text); } /** * Date转字符串 * @param date * @param locale * @return */ @Override public String print(Date date, Locale locale) { SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd"); return sf.format(date); }}

2.5、在配置文件注册自定义数据格式化类

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://.yl.bean;import org.springframework.format.annotation.DateTimeFormat;import java.util.Date;public class User { private String username; @DateTimeFormat(pattern = "yyyy-MM-dd") private Date date; public User() { } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } @Override public String toString() { return "User{" + "username='" + username + '\'' + ", date=" + date + '}'; }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章