SpringMVC数据传递相关注解扩展

news/2024/12/5 8:32:49/

一、SpringMVC 获取请求参数
(六)、接收复杂数据类型
    Request processing failed; nested exception is java.lang.IllegalStateException: No primary or single unique constructor found for interface java.util.List --> 未加@RequestBody注解

(七)、时间格式处理
    @DateTimeFormat只会处理可以直接从request中获取得到时间;
    对于传输的JSON中的日期格式,由Jackson的@JsonFormat 或FastJson的dateFormat处理,其他JSON消息转换器也有对应的配置。
    
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")


二、SpringMVC数据传递相关注解扩展
(一)、@ModelAttribute
@ModelAttribute主要有两种用法:
    1、标注在非功能方法上,每次执行方法时都会先执行@ModelAttribute注解的方法,可以:
        ①在参数中获取使用Model,HttpServletRequest,HttpServletResponse等
        ②也可以正常获取请求的数据
        ③可以向Model、HttpServletRequest中添加数据
        ④若该方法有返回值时:自动把返回的数据添加到Modal中,对于此时的Key值有两种情况
            a.如果@ModelAttribute没有指定value值,那么添加的key就是类型名称首字母小写
            b.如果指定了value值会在①的基础上额外添加一个,key就是指定的值

    2、用在Action方法的参数上,将注解的参数添加到Model中,Key值有两种情况
        ①若@ModelAttribute未指定value值,那么Key值就是类型名称首字母小写
         ②若@ModelAttribute指定value值,那么key值就是指定的值
         
(二)、@SessionAttributes与@SessionAttribute
    @SessionAttributes用于在请求之间的HTTP Servlet会话中存储model属性。 它是类型级别的注解,用于声明特定控制器使用的会话属性。会筛选该控制器下的所有添加到Model中的数据,将符合筛选条件的数据自动添加到Session中。
    @SessionAttribute 用在方法的形参上,从session中获取指定名称的的数据,并把数据给形参参数。


三、SpringMVC 转发和重定向
(一)、转发 forward


(二)、重定向  redirect
    重定向时传参方式
        1、添加到Model或ModelAndView中的数据会以参数的形式拼接在url后,可以用来传递数据
        2、手动拼接到Url上(注意需要进行URLEncoder.encode()编码) 
        3、RedirectAttributes对象
            ①默认的addAttribute()还是会拼接url
            ②使用RedirectAttributes对象对象时 Model中的数据不会拼接到url,而ModelAndView中的数据会。
            ③使用addFlashAttribute()方法可以不在URL中显示参数
                * 需要在重定向的目标方法使用@ModelAttribute接收参数
                * 其原理就是放到session中,session在跳到页面后马上移除对象。所以刷新就没有值了

 
 
 
 


http://www.ppmy.cn/news/107751.html

相关文章

C# 事件(event)

目录 一、概述 二、事件和委托的区别 委托和事件的概念 委托和事件的作用 委托和事件的区别 三、事件的基本用法 结束 一、概述 事件是一种特殊的多播委托,仅可以从声明事件的类(或派生类)或结构(发布服务器类&#xff09…

IntersectionObserver实现无线滚动和懒加载

最近发现一个有意思的Web API IntersectionObserver 和大家分享一下 IntersectionObserver 可以用于检测元素是否进入视口,可以用于实现无限滚动、懒加载等功能。 使用场景:在Web应用中,可能需要实现无限滚动、懒加载等功能,使用…

windows环境, nginx https配置

在 Windows 环境下配置 Nginx 的 HTTPS,需要以下步骤: 1. 安装 OpenSSL 首先需要安装 OpenSSL,可以从官网下载 Windows 版本的 OpenSSL,然后解压到某个目录下,比如 C:\OpenSSL-Win64。 2. 生成 SSL 证书和私钥 使用…

【JOSEF约瑟 JDL-5200A 电流继电器 过负荷或短路启动元件 导轨安装】

名称:电流继电器;品牌:JOSEF约瑟;型号:JDL-5200A触点容量:250V2A;返回时间:≤35ms;整定范围:0.03-19.9A;特点:返回系数高、安装方便。…

什么是腾讯云轻量应用服务器?轻量与云服务器对比区别有哪些?

什么是腾讯云轻量应用服务器?轻量应用服务器是腾讯云推出的开箱即用轻量级云服务器,适合个人开发者或中小企业使用,腾讯云轻量服务器和云服务器有什么区别?为什么轻量应用服务器成本更低?是因为轻量服务器CPU内存性能比…

Vue动态路由在实际项目中的应用(包含前后台细节)

背景 近期做一个公司的门户网站,在产品和新闻这一块需要用到动态路由。本节博客以产品板块为例说一下动态路由的应用。 另外如果路由相关的基础知识有问题,可以查看我的这篇博客: Vue2路由的详细讲解 另外,这篇博客也会涉及到一…

在 Shell 脚本中使用 `exec` 命令的方法和用途

在 Shell 脚本中,exec 是一个非常有用的命令,用于执行命令或替换当前进程。它允许您在脚本中启动新的进程,并将控制权完全转移到新进程。本文将详细介绍在 Shell 脚本中使用 exec 命令的方法和用途。 什么是 Exec 命令? exec 是一…

Ribbon入门使用 RestTemplate loadbance 负载均衡

一、概念 1. Ribbon Ribbon是实现一套客户端,负载均衡的工具,简单的说,ribbon是一个开源项目,主要提供给客户端软件负载均衡算法和服务调用。 负载均衡和服务调用的提供者 主要用于: 负载均衡 将用户的请求平均到分配多个微服务…