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

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.kler.cn/a/309134.html

相关文章:

  • Yocto 项目下通过网络更新内核、设备树及模块
  • SQL Server 数据太多如何优化
  • Netty实现WebSocket Client三种典型方式
  • ubuntu下aarch64-linux-gnu(交叉编译) gdb/gdbserver(二)
  • uniapp 整合 OpenLayers - 测距测面
  • svgicon大小问题(简单记录
  • Redis的缓存穿透、缓存雪崩、缓存击穿怎么解决
  • 【苍穹外卖】总结
  • 排序算法-选择排序
  • 深度学习自编码器 - 正则自编码器篇
  • 3.python 爬虫基础HTTP原理2和网页基础
  • Qt/C++ 了解NTFS文件系统,获取首张MFT表数据,解析文件记录头内容找到第一个属性偏移地址
  • 工具类中使用@Value注解引入静态地址
  • uniapp uview扩展u-picker支持日历期间 年期间 月期间 时分期间组件
  • GC垃圾回收机制-Serial GC
  • Uniapp + Vue3 + Vite +Uview + Pinia 分商家实现购物车功能(最新附源码保姆级)
  • Linux下root用户共享conda环境给其他用户
  • 力扣121-买卖股票的最佳时机(Java详细题解)
  • Encountered 31 files that should have been pointers, but weren‘t:(已解决,无废话)
  • System.out源码解读——err 和 out 一起用导致的顺序异常Bug
  • 论文翻译:USENIX-2021 Extracting Training Data from Large Language Models
  • 网络设备登录——《路由与交换技术》实验报告
  • 养宠浮毛严重怎么清理?希喂、范罗士、IAM宠物空气净化器真实测评
  • C++:初始化列表
  • 在线包装盒型生成工具,各种异型包装盒型,PDF导出方便
  • 【蜡笔小新专享】安装虚拟机、PHP、DVWA