2026/2/6 15:26:23
网站建设
项目流程
池州公司做网站,互联网 医疗网站建设有哪些城市,怎样在手机上无货源开店,网站制作作业一.参数传递1.普通参数类型Spring MVC会自动将请求中的查询参数#xff08;如?nameJohnage25#xff09;映射到方法的参数上#xff0c;要求参数名称和请求中的参数名称相同。这里#xff0c;name和age是请求中的参数#xff0c;Spring会根据参数名自动将其值传递给…一.参数传递1.普通参数类型Spring MVC会自动将请求中的查询参数如?nameJohnage25映射到方法的参数上要求参数名称和请求中的参数名称相同。这里name和age是请求中的参数Spring会根据参数名自动将其值传递给对应的方法参数。2.不同名称的参数传递当请求参数名称和方法的参数名称不一致时可以使用RequestParam注解来手动指定请求参数和方法参数之间的映射关系。例如如果请求中的参数是nameJohn但方法中的参数名是userName通过RequestParam(name)可以将name参数映射到userName。3.POJO参数传递Spring MVC支持将请求中的多个参数自动映射到一个POJOPlain Old Java Object对象中。当请求中包含多个参数且参数名称与POJO类中的属性名称一致时Spring会自动将这些值映射到对应的POJO字段。例如如果请求中有nameJohnage25Spring会自动将这些值注入到User对象中其中name和age对应User类的属性。4.嵌套POJO参数传递如果POJO类中的某个属性本身是一个POJO对象Spring MVC会递归地将请求中的数据映射到嵌套的POJO对象。例如在请求中nameJohnage25address.provinceBeijingaddress.cityBeijingSpring会将address.province和address.city映射到User对象中的Address对象的province和city属性。5.数组参数传递Spring MVC支持将多个同名的请求参数如likesapplelikesbananalikesorange自动映射到一个数组中。如果请求中有多个likes参数Spring会将它们转化为一个数组传递给控制器方法。6.集合参数传递Spring MVC支持将多个同名请求参数映射到一个集合如List。这类似于数组传递但更灵活因为集合可以动态扩展。当请求中有多个likes参数时Spring将其映射到一个ListString对象中。7.JSON格式的参数传递通过RequestBody注解Spring MVC可以将请求中的JSON数据如[apple, banana]自动转化为Java对象如ListString。RequestBody注解使得Spring MVC能够处理JSON格式的请求体并将其转换为方法参数所需的Java对象。为了实现JSON格式的自动转换需要在配置类中开启EnableWebMvc。8.日期参数传递Spring MVC支持将请求中的日期字符串转换为Date类型的方法参数。使用DateTimeFormat注解可以指定日期格式。在请求中传递date2026-01-01Spring会将其自动转换为Date对象。如果使用DateTimeFormat指定格式可以处理不同格式的日期字符串。9.其他细节补充1乱码处理背景在处理POST请求时特别是表单提交或JSON数据提交可能会出现中文字符乱码问题。这通常是因为请求的编码格式与服务器处理请求时的编码格式不一致导致的。解决方法Spring提供了CharacterEncodingFilter用于解决这个问题。它确保了请求和响应在处理过程中都使用正确的字符编码。filter.setEncoding(UTF-8)指定字符编码为UTF-8。filter.setForceEncoding(true)强制设置请求的编码为UTF-8不管客户端传送的是什么编码。2EnableWebMvc开启JSON自动转换EnableWebMvc是Spring MVC的注解它用于启用Spring MVC的默认配置。这个注解不仅启用了Spring MVC的基础功能还包括JSON数据类型的自动转换。使得Spring能够自动处理RequestBody和ResponseBody注解的请求将请求的JSON数据自动映射到Java对象或将Java对象转化为JSON响应。3底层转化器自动类型转换Spring MVC中的RequestBody、DateTimeFormat等注解背后使用了Spring的数据绑定和类型转换机制。数据绑定Spring MVC会根据请求参数的名称自动将请求中的值绑定到控制器方法的参数上。如果控制器方法的参数是一个POJO对象Spring会通过反射和字段名称自动进行匹配映射请求参数到对象的属性。类型转换Spring为常见的类型如日期、字符串、数字等提供了默认的转换器。对于复杂的类型如自定义的Date格式你可以通过DateTimeFormat来指定格式Spring会使用相应的转换器进行类型转换。二.响应1.响应页面/跳转页面当用户访问/toJumpPage路径时控制器会返回一个页面跳转的指令。Spring会根据配置的视图解析器如InternalResourceViewResolver解析这个视图名并查找WEB-INF目录下的page.jsp页面。如果访问/toJumpPage浏览器会跳转到page.jsp页面2.响应文本数据当用户访问/toText路径时控制器返回一个纯文本字符串作为响应。ResponseBody注解此注解指示Spring MVC将方法的返回值直接写入HTTP响应体中而不是解析为视图。返回字符串返回的response text将作为纯文本响应返回给客户端浏览器将显示该文本。3.响应POJO对象返回JSON格式当用户访问/toJsonPOJO路径时控制器返回一个User对象该对象会被转换成JSON格式返回给客户端。ResponseBody注解指示Spring MVC将返回的User对象转换为JSON格式并直接写入HTTP响应体中。JSON格式Spring会自动使用Jackson或其他JSON处理库将User对象转换为JSON格式。4.响应POJO集合对象返回JSON数组当用户访问/toJsonList路径时控制器返回一个包含多个User对象的集合ListUser。这个集合会被转换为JSON数组格式返回给客户端。返回ListUser控制器方法返回一个List集合包含多个User对ResponseBody注解同样地ResponseBody注解确保Spring MVC将返回的ListUser集合转换为JSON格式并写入响应体。5.其他细节在Spring MVC中HttpMessageConverter是一个非常重要的接口它负责将HTTP请求和响应的消息体即请求体和响应体转换为Java对象或者将Java对象转换为HTTP消息体。这使得Spring MVC能够处理不同格式的数据如JSON、XML、纯文本等。1什么是HttpMessageConverterHttpMessageConverter是Spring MVC用于将HTTP请求和响应的数据与Java对象进行转换的机制。它有两种主要功能将请求体Request Body转换为Java对象例如将JSON字符串转换为Java对象。将Java对象转换为响应体Response Body例如将Java对象转换为JSON格式的响应。2常见的HttpMessageConverter实现Spring MVC提供了很多内置的HttpMessageConverter实现支持常见的数据格式。以下是一些常见的实现MappingJackson2HttpMessageConverter用于处理JSON格式的转换基于Jackson库。Jaxb2RootElementHttpMessageConverter用于处理XML格式的转换基于JAXB。StringHttpMessageConverter用于处理字符串的转换。FormHttpMessageConverter用于处理表单数据的转换。ByteArrayHttpMessageConverter用于处理字节数组数据的转换。