首页 > 其他分享 >SpringMVC使用:类型转换&数据格式化&数据验证

SpringMVC使用:类型转换&数据格式化&数据验证

时间:2024-09-07 19:52:44浏览次数:14  
标签:类型转换 格式化 form SpringMVC spring springmvc jsp 客户端

01-类型转换器

先在pom.xml里面导入依赖,一个是mvc框架的依赖,一个是junit依赖

然后在web.xml里面导入以下配置(配置的详细说明和用法我在前面文章中有写到)

创建此测试类的方法用于测试springmvc是具备自动类型转换功能的

user属性如下

show.jsp内容如下

在客户端输入如下数据

输出如下重点看日期他给转换了,说明springmvc底层以及做好了自动类型转换

我们在客户端上写的内容是在request.getparammer的所有不管你写的是数字还是什么,源数据都会是string,然后springmvc会自动转换类型为目标类型

如果我们运用springmvc没有的数据类型的话springmvc是不会提供自动转化的这时候我们需要自己创建一个类来实现,比如我们在客户端上输入2019-01-01

创建的转化类型的类需要继承接口Converter<String, Date>     <,>里面的逗号前面为原类型(客户端写的默认是string类型)逗号后面为目标类型,source.split("-").length==3意思是只要客户端第4个符号是-就会进入if条件语句,DataFormat用来格式化数据的

在spring-mvc.xml文件中配置自定义转换类型的转换器如下图bean class里的内容,此内容第一句话照写,set里面的内容需要写自定义的类对应的完整路径,写完后把id里的内容写入到静态配置文件里conversion-service="conversionService"加入这句话

最后输出成功

2、数据格式化

首选创建form表单,在add.jsp里面

在show.jsp中写入要显示的内容导入spring 标签库用于接收@DateTimeFormat和@NumberFormat注解格式化的内容,spring:eval一般用于显示格式化后数据的内容

配置spring-mvc.xml用于格式化注解可以使用

@NumberFormat注解内容解释

3、数据校验

首先要导入hibernate-validator的jar包

导入依赖后可以在类上用以下注解作用在属性上

然后再如下图解释创建方法

在add.jsp中写入errors.属性是为了获取错误信息显示到客户端上,user.属性是为了把提交后的数据重新写到文本上

SpringMVC是如何做到根据参数名动态绑定参数的?

用自动绑定的参数然后你转发它会自动的转发到model里面去,model在request域里面

基于spring form标签库的实现方式:

首先要用spring form标签库需要先传入一个空的User到model中

然后在add.jsp文件中写入form标签,一定要写下图这句话,然后form:form要写这样开头,modelAttribute="user"一定要写,因为我们获取到的数据都是user里面的属性,所以我们先创建了个user用@GetMapping

Springmvc form标签,动态获取数据源

先创建@ModelAttribute用于在每个方法被调用时都会先调用这个方法,先测试list,发现value的值和label的值是一样的,但是我们开发中不想让它俩一样咋办的,需要用到map了

创建@ModelAttribute用于在每个方法被调用时都会先调用这个方法,测试map的动态数据源value的值和label的值是不一样的

标签:类型转换,格式化,form,SpringMVC,spring,springmvc,jsp,客户端
From: https://blog.csdn.net/kkkkkkkok/article/details/141833558

相关文章

  • 手机TF卡格式化后数据恢复:方法、挑战与预防措施
    在现代生活中,‌手机已经成为我们不可或缺的一部分,‌而TF卡(‌即MicroSD卡)‌作为手机存储的扩展,‌更是承载了我们大量的重要数据。‌然而,‌不慎的格式化操作往往导致数据丢失,‌给用户带来不小的困扰。‌本文将深入探讨手机TF卡格式化后的数据恢复方法,‌同时分析恢复过程中可能遇......
  • json字符串转义格式化后再转换处理demo StringEscapeUtils.unescapeJava
    json字符串转义格式化后再转换处理demoStringEscapeUtils.unescapeJava报错关键字:illegalidentifierExpectedBEGIN_OBJECTbutExpectednameatpackagecom.example.core.mydemo;importcom.alibaba.fastjson.JSON;importcom.fasterxml.jackson.core.JsonProcessingE......
  • 2024.9.6 Python,华为笔试题总结,字符串格式化,字符串操作,广度优先搜索解决公司组织绩效
    1.字符串格式化name="Alice"age=30formatted_string="Name:{},Age:{}".format(name,age)print(formatted_string)或者name="Alice"age=30formatted_string=f"Name:{name},Age:{age}"print(formatted_string)2......
  • SpringMVC-05-Json
    1、什么是JSON?JSON:JavaScriptObjectNotation(JS对象描述法)。JSON是一种存储和交换数据的语法。JSON是通过JS对象描述法书写的文本,用字面文本的形式来表示一个JS对象2、为什么要使用JSON?JSON是一种轻量级的数据交换格式,伴随着JavaScript语言的火爆,目前使用特别广泛。......
  • Spring、SpringMVC、SpringBoot都是什么,有什么区别
    Spring、SpringMVC、SpringBoot都是什么,有什么区别Spring:是一个轻量级的基于IOC和AOP的容器框架,是用来简化开发流程的一套框架。IOC:InversionofController控制反转。不好理解的概念:应用不负责依赖对象的创建,而是把它们创建的控制器交给外部容器,这种控制权的转移就是控......
  • 2.常量 变量 类型转换 进制转换
    常量变量类型转换进制转换1.常量的使用2.变量的使用3.会强制类型转换一、常量(一)常量的分类1.概述:在代码的运行过程中,其值不会发生改变的数据2.分类:整数常量:所有整数小数常量:所有带小数点的字符常量:带单引号,有且只能有一个内容字符串常量:带双引号布尔常量:trueflase空......
  • 断言assert,异常,类型转换
    assert作用:等同于Qdebug(val),判断程序是否得到自己想要的结果可以通过#defindeNDEBUG一键屏蔽接受一个条件表达式作为参数。如果该条件表达式的值为假(即为0或者布尔意义上的false),则assert会触发一个错误,通常会导致程序终止,并打印出错误信息和发生错误的位置#include<ios......
  • SQL Server 自定义函数返回格式化DateTime
    CreateFUNCTION[dbo].[FormatDateTime](@dateasdatetime,---传入时间@dformatasvarchar(10)---传入要生成的格式代码)RETURNSvarchar(100)ASBEGIN declare@datestringasvarchar(100) if@dformat='f1' begin set@datestring=(SELECTFORMAT(@date,'......
  • VScode「配置自动代码格式化C/C++」
    前言        你好,我是小莱,希望输出高质量的内容。        在大厂实习的过程中,我发现很多资深的开发者都习惯自己敲空格,按照公司的代码规范使用标尺来提示自己什么时候该换行。也许这样做可以增加代码编辑时的灵活性,但对于新入职场(用惯了VS)的小白来说,无疑大......
  • 【Python基础】数据格式化
    1.1数据的分类(基于维度)根据组织数据时与数据有联系的参数的数量,数据可以分为以下三类。(1)一维数据1.一维数据是具有对等关系的一组线性数据,对应数学中的集合、一维数组。2.在Python中,一维列表、一维元组、一维集合都是一维数据。3.可通过逗号、空格等符号分隔一维......