当前位置: 首页 > news >正文

SpringMVC映射请求;SpringMVC返回值类型;SpringMVC参数绑定;

一,SpringMVC映射请求

SpringMVC 使用 @RequestMapping 注解为控制器指定可以处理哪些URL请求

1.1@RequestMapping修饰类

注解@RequestMapping修饰类,提供初步的请求映射信息,相对于WEB应用的跟目录。

注:

                如果在类名前,使用了注解@RequestMapping,那么在处理器的方法里,在进行页面跳转的时候:

                       如果不经过视图解析器,那就要在跳转页面名的前面 加上“ / ”,表示页面的跳转位置从项目根目录开始;

                        如果没加“ /” 的意思是,以上面的例子来说,那么页面的跳转位置是从items这个逻辑文件夹开始!

1.2@RequestMapping修饰方法

详细介绍:@RequestMapping

1.@RequestMapping("/show.do")

===加 / 是当前工程下,不加默认也是当前工程下

2.@RequestMapping(value={"show.do",”reg.do“})

===表示两个url请求都可以进入此控制器的此方法里。

===如果value的值只有一个的话,不需要加{}

===如果@RequestMapping注解里只有value这一个属性的话,并且该value属性还只有一个值的话,value也可以省去。如 上面的1。

3.@RequestMapping(value={"show.do",”reg.do“} ,method={RequestMethod.POST})

===value 和method两个属性之间使用 逗号,隔开

===method={RequestMethod.POST} 表示当前方法只能处理POST请求,若缺省,则get/post都可以处理。

4.对请求的参数加以限制:

@RequestMapping(value={"show.do",”reg.do“} ,params={”参数名1“,”参数名2“})

===表示当前方法请求参数中,必须有参数名叫 参数名1 和 参数名2 这两个参数。

@RequestMapping(value={"show.do",”reg.do“} ,params={”参数名1=value1“,”参数名2“})

===表示当前方法请求参数中,必须有参数名叫 参数名1 和 参数名2 这两个参数,并且参数1的值必须为value1。

5.headers属性:作为了解

指定request中必须包含某些指定的header值,才能让该方法处理请求。

@RequestMapping(value = "/pets", method = RequestMethod.GET, headers="Referer=凤凰网")

===表示仅处理request的header中包含了指定“Refer”请求头和对应值为“http://www.ifeng.com/”的请求;

二,SpringMVC返回值类型

controller 方法的返回值有三种:

                A.ModelAndView

                B.String

                C.void

2.1返回ModelAndView

方法返回值定义为ModelAndView时,对象可添加model数据也可以指定view。

@RequestMapping("show.do")public ModelAndView show(){ModelAndView mv=new ModelAndView();List<Product> list=new ArrayList<Product>();list.add(new Product(1,"华为","手机",2888.8));list.add(new Product(2,"华为","电脑",4888.8));mv.addObject("list",list);mv.setViewName("show.jsp");return mv;}

补:

     mv.addObject("list",list); 相当于request.setAttribute("list",list);在jsp页面中通过items获得集合数据。

2.2返回String

方法返回值为String时,字符串内容不是随意的,而是要遵守一定的格式!有三种方式:

A.字符串内容==>表示逻辑视图名,以请求转发方式进行页面跳转,也可以是controller控制器。

如:return “index.jsp”;

B.字符串内容==>以“forward:”开头,表示以请求转发方式进行页面跳转,也可以是controller控制器。

如:return “forward:index.jsp”;

C.字符串内容==>以“redirect:”开头,表示以重定向方式进行页面跳转,跳转的路径可以是jsp页面,也可以是controller控制器。

如:return “redirect:index.jsp”;

注意: 如果applicationContext.xml里配置了视图解析器,该方法不进入【视图解析器】的。

2.3返回void

方法返回值为void时,有以下两种方式:

A. request.getRequestDispatcher("main.action").forward(request, response);表示请求转发方式进行页面跳转

B. response.sendRedirect("main.action");表示重定向方式进行页面跳转

2.4返回实体对象(配合 @ResponseBody 注解)        

        当在方法上添加了@ResponseBody注解时,返回的实体对象会被 HttpMessageConverter 转换为对应的响应体格式(如 JSON、XML 等)。

三,SpringMVC参数绑定

参数绑定的过程

从客户端请求key / value数据,经过参数绑定,将key / value数据绑定到controller方法的形参上。

springMVC中,接收页面提交的数据是通过方法形参来接收,而不是在controller类定义成员变量接收

http://www.lryc.cn/news/437318.html

相关文章:

  • 【第28章】Spring Cloud之Sentinel注解支持
  • 鼎捷新一代PLM 荣膺维科杯 “2023年度行业优秀产品奖”
  • 如何升级用 Helm 安装的极狐GitLab Runner?
  • 08 vue3之认识bem架构及less sass 和scoped
  • 静态库的制作
  • PHP在现代Web开发中的高效应用与最佳实践
  • 大数据-134 - ClickHouse 集群三节点 安装配置启动
  • 2024网络安全人才实战能力白皮书安全测试评估篇
  • [项目][WebServer][解析错误处理]详细讲解
  • 51单片机应用开发---数码管的控制应用
  • Vue3+Django5+REST Framework开发电脑管理系统
  • Java8函数式接口全攻略
  • 英文软件汉化中文软件教程asi exe dll 等汉化教程
  • HTTP 请求方式`application/x-www-form-urlencoded` 与 `application/json` 怎么用?有什么区别?
  • prometheus 集成 grafana 保姆级别安装部署
  • Apache SeaTunnel Committer 进阶指南
  • 组件上的v-model(数据传递),props验证,自定义事件,计算属性
  • mfc140u.dll文件错误的相关修复方法,4种方法修复mfc140u.dll
  • Redis中使用布隆过滤器解决缓存穿透问题
  • css百分比布局中height:100%不起作用
  • java程序员入行科目一之CRUD轻松入门教程(二)
  • (不用互三)解密AI创作:提升Prompt提示词的提问技巧
  • Python 错误 ValueError 解析,实际错误实例详解 (二)
  • 会员计次卡渲染技术-—SAAS本地化及未来之窗行业应用跨平台架构
  • Redis网络模型、通信协议、内存回收
  • 闯关leetcode——21. Merge Two Sorted Lists
  • Notepad++中提升编码效率的关键快捷键
  • ai智能语电销机器人有哪些功能?
  • ctfshow-PHP反序列化
  • BEV学习---LSS-2