【第11章】spring-mvc默认转换器

news2024/11/24 9:07:13

文章目录

  • 前言
  • 一、DateFormatter
  • 二、NumberFormat
    • 1. NumberBean
    • 2. number.jsp
  • 三、ConverterController
  • 四、执行结果
  • 总结


前言

【第6章】spring类型转换器

此章节内容为spring类型转换器内容扩展,使用spring提供的注解增强转换器功能,让date和int等类型转换更加方便。


一、DateFormatter

package org.example.springmvc.converters;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Date;

/**
 * Create by zjg on 2024/5/1
 */
@Getter
@Setter
@ToString
public class DateBean {
    private Date date1;
    @DateTimeFormat(pattern = "yyyyMMdd")
    private Date date2;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date date3;
    @DateTimeFormat(pattern = "yyyy/MM/dd")
    private Date date4;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date date5;
    @DateTimeFormat(pattern = "yyyy/MM/dd HH:mm:ss")
    private Date date6;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate date7;
    @DateTimeFormat(pattern = "HH:mm:ss")
    private LocalTime date8;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime date9;
}

二、NumberFormat

1. NumberBean

package org.example.springmvc.converters;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.format.annotation.NumberFormat;
import java.math.BigDecimal;
import java.math.BigInteger;

/**
 * Create by zjg on 2024/5/1
 */
@Getter
@Setter
@ToString
public class NumberBean {
    @NumberFormat
    private short number1;
    @NumberFormat
    private int number2;
    @NumberFormat
    private long number3;
    @NumberFormat(style= NumberFormat.Style.NUMBER)
    private float number4;
    @NumberFormat(style= NumberFormat.Style.PERCENT)
    private double number5;
    @NumberFormat(style= NumberFormat.Style.CURRENCY)
    private BigDecimal number6;
    @NumberFormat(pattern = "#,###,###,###,###")
    private BigInteger number7;
}

2. number.jsp

<%--
  Created by IntelliJ IDEA.
  User: 张军国001
  Date: 2024/5/2
  Time: 12:06
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<html>
<head>
    <title>numberBean</title>
</head>
<body>
<spring:eval expression="numberBean.number1"/>
<spring:eval expression="numberBean.number2"/>
<spring:eval expression="numberBean.number3"/>
<spring:eval expression="numberBean.number4"/>
<spring:eval expression="numberBean.number5"/>
<spring:eval expression="numberBean.number6"/>
<spring:eval expression="numberBean.number7"/>
</body>
</html>

三、ConverterController

package org.example.springmvc.converters;

import com.alibaba.fastjson2.JSONObject;
import org.example.springmvc.converters.custom.Request;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * Create by zjg on 2024/5/1
 */
@Controller
public class ConverterController {
    @RequestMapping("/dateBean")
    @ResponseBody
    public DateBean dateBean(DateBean dateBean){
        System.out.println(dateBean);
        return dateBean;
    }
    @RequestMapping("/numberBean")
    public String numberBean(NumberBean numberBean){
        System.out.println(numberBean);
        return "params/number";
    }
}


四、执行结果

DateBean(date1=Wed May 01 22:28:20 CST 2024, date2=Wed May 01 00:00:00 CST 2024, date3=Wed May 01 00:00:00 CST 2024, date4=Wed May 01 00:00:00 CST 2024, date5=Wed May 01 22:28:20 CST 2024, date6=Wed May 01 22:28:20 CST 2024, date7=2024-05-01, date8=22:28:20, date9=2024-05-01T22:28:20)
NumberBean(number1=1, number2=1, number3=1, number4=1.123, number5=1.456, number6=1.78, number7=1000000000000)

在这里插入图片描述


总结

回到顶部
官方文档

postman测试脚本已上传,下载导入即可用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1649349.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

利用生成式AI重新构想ITSM的未来

对注入 AI 的生成式 ITSM 的需求&#xff0c;在 2023 年 Gartner AI 炒作周期中&#xff0c;生成式 AI 达到预期值达到顶峰后&#xff0c;三分之二的企业已经将生成式 AI 集成到其流程中。 你问为什么这种追求&#xff1f;在预定义算法的驱动下&#xff0c;IT 服务交付和管理中…

PM说|还有不会DISC的项目经理?

DISC行为模型是一种常用于职场中的人际交往工具&#xff0c;它通过对个体的行为特点进行分类和分析&#xff0c;帮助人们更好地理解自己和他人的行为方式&#xff0c;从而更加高效地进行沟通和合作。在项目管理过程中&#xff0c;多方沟通是必备工作技能&#xff0c;如何利用DI…

CP AUTOSAR之CANXLDriver详细说明(正在更新中)

本文遵循autosar标准&#xff1a;R22-11 1 简介及功能概述 本规范描述了AUTOSAR 基础软件模块CAN XL 驱动程序的功能、API和配置。   本文档的基础是[1,CiA610-1]和[2,CiA611-1]。假设读者熟悉这些规范。本文档不会再次描述CAN XL 功能。   CAN XL 驱动程序是最低层的一部…

基于TF的简易关键字语音识别

⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计10182字&#xff0c;阅读大概需要10分钟 &#x1f308;更多学习内容&#xff0c; 欢迎&#x1f44f;关注&#x1f440;【文末】我的个人微信公众号&#…

淤地坝安全监测预警系统解决方案

一、方案背景 淤地坝是黄土高原地区人民群众长期同水土流失斗争实践中创造的一种行之有效的水土保持工程措施&#xff0c;在拦泥保土、减少入黄泥沙、防洪减灾、淤地造田、巩固退耕还林&#xff08;草&#xff09;、保障生态安全、促进粮食生产和水资源合理利用及经济社会稳定发…

自动驾驶学习1-超声波雷达

1、简介 超声波雷达&#xff1a;利用超声波测算距离的雷达传感器装置&#xff0c;通过发射、接收 40kHz、48kHz或 58kHz 频率的超声波&#xff0c;根据时间差测算出障碍物距离&#xff0c;当距离过近时触发报警装置发出警报声以提醒司机。 超声波&#xff1a;人耳所不能听到的…

HG-KN73J-S100 三菱伺服电机(750W型)

HG-KN73J-S100属于三菱MR-JE系列伺服系统&#xff0c;可以与伺服驱动器MR-JE-70A、MR-JE-70B、MR-JE-70C配套使用。HG-KN73J-S100完全替换HF-KN73J-S100。HG-KN73J-S100规格、HG-KN73J-S100参数。 HG-KN73J-S100参数说明&#xff1a;MR-JE低惯性/小容量、0.75Kw三菱伺服电机HG-…

Web实操(6),基础知识学习(24~)

1.[ZJCTF 2019]NiZhuanSiWei1 &#xff08;1&#xff09;进入环境后看到一篇php代码&#xff0c;开始我简单的以为是一题常规的php伪协议&#xff0c;多次试错后发现它并没有那么简单&#xff0c;它包含了基础的文件包含&#xff0c;伪协议还有反序列化 &#xff08;2&#x…

uniapp文本框上下滚动问题

一个基本需求&#xff0c;textarea标签没有办法通过手拖动的方式进行滚动&#xff0c;当文字超出其容量后&#xff0c;想要编辑上面被遮挡部分的文字这边难以点到&#xff0c;电脑可以鼠标滚轮&#xff0c;但手机需要拖动但无效&#xff1a; 下面提供了我的解决思路&#xff1a…

IP规划案例

整个OSPF环境IP基于172.16.0.0/16划分 172.16.0.0/16 先分成2个网段&#xff08;OSPF RIP&#xff09;&#xff0c;借1位172.16.0.0/17 ---OSPF 再按区域划分&#xff08;5个区域&#xff09;&#xff0c;借3位 172.16.0.0/20 ---Area 0 三个环回 MGRE 4个网…

【Vue】pinia

pinia 官网:https://pinia.vuejs.org/zh/ 搭建 pinia 环境 第一步&#xff1a;npm install pinia --save 第二步&#xff1a;操作src/main.ts import { createApp } from vue import App from ./App.vue/* 引入createPinia&#xff0c;用于创建pinia */ import { createP…

VALSE 2024 Tutorial内容总结--开放词汇视觉感知

视觉与学习青年学者研讨会&#xff08;VALSE&#xff09;旨在为从事计算机视觉、图像处理、模式识别与机器学习研究的中国青年学者提供一个广泛而深入的学术交流平台。该平台旨在促进国内青年学者的思想交流和学术合作&#xff0c;以期在相关领域做出显著的学术贡献&#xff0c…

技术速递|使用 .NET 为 Microsoft AI 构建可扩展网关

作者&#xff1a;Kara Saucerman 排版&#xff1a;Alan Wang Microsoft AI 团队构建了全面的内容、服务、平台和技术&#xff0c;以便消费者在任何设备上、任何地方获取他们想要的信息&#xff0c;并为企业改善客户和员工的体验。我们的团队支持多种体验&#xff0c;包括 Bing、…

RVM(相关向量机)、CNN_RVM(卷积神经网络结合相关向量机)、RVM-Adaboost(相关向量机结合Adaboost)

当我们谈到RVM&#xff08;Relevance Vector Machine&#xff0c;相关向量机&#xff09;、CNN_RVM&#xff08;卷积神经网络结合相关向量机&#xff09;以及RVM-Adaboost&#xff08;相关向量机结合AdaBoost算法&#xff09;时&#xff0c;每种模型都有其独特的原理和结构。以…

call, apply , bind 区别详解 及 实现购物车业务开发实例

call 方法&#xff1a; 原理 call 方法允许一个对象借用另一个对象的方法。通过 call&#xff0c;你可以指定某个函数运行时 this 指向的上下文。本质上&#xff0c;call 改变了函数运行时的作用域&#xff0c;它可以让我们借用一个已存 在的函数&#xff0c;而将函数体内的 th…

关于执行CLAM的代码的一些需要记录的点

文章链接&#xff1a;[2004.09666] Data Efficient and Weakly Supervised Computational Pathology on Whole Slide Images (arxiv.org) 代码链接&#xff1a;GitHub - mahmoodlab/CLAM: Data-efficient and weakly supervised computational pathology on whole slide images…

VALSE 2024 Workshop报告分享┆Open-Sora Plan视频生成开源计划——进展与不足

2024年视觉与学习青年学者研讨会&#xff08;VALSE 2024&#xff09;于5月5日到7日在重庆悦来国际会议中心举行。本公众号将全方位地对会议的热点进行报道&#xff0c;方便广大读者跟踪和了解人工智能的前沿理论和技术。欢迎广大读者对文章进行关注、阅读和转发。文章是对报告人…

新手做抖音小店多久能出单?新手抖音小店出单秘籍!出单教程必看

大家好&#xff0c;我是电商花花。 现阶段还是有很多朋友加入到抖音电商行业&#xff0c;因为抖音小店上还隐藏很多的红利和市场&#xff0c;很多新手开店后第一个问题就是&#xff0c;店铺开通后&#xff0c;一般多久能出单&#xff1f; 多久能出单&#xff0c;其实更看重的…

高等数学笔记(下中)

曲线积分 第一类曲线积分&#xff1a;对弧长的积分计算方法 定理&#xff1a;设 f ( x , y ) f(x,y) f(x,y)在曲线弧 L L L上有定义且连续&#xff0c; L L L的参数方程是 { x φ ( t ) y ψ ( t ) ( α ≤ t ≤ β ) \begin{cases} x\varphi(t)\\ y\psi(t) \end{cases}(\a…

国内如何下载TikTOK,手机刷机教程

最近很多玩家都来问怎么刷机&#xff1f;手机环境怎么搭建&#xff1f;这里给大家整理了苹果IOS刷机教程 1.iOS下载教程 &#xff1a; 步骤一&#xff1a;手机调试 苹果手机系统配置推荐&#xff1a;iPhone6S以上&#xff0c;16G。 注意&#xff1a;如果是选择购入二手手机…