zoukankan      html  css  js  c++  java
  • springmvc07

    请求参数名和处理器方法的形参名不一样,使用 @RequestParam 注解


    首页 index.jsp 的参数名是 iname 和 iage

    <p>请求参数名和处理器方法的形参名不一样</p>
    <form action="other.do" method="post">
    姓名:<input type="text" name="iname"><br/>
    年龄:<input type="text" name="iage"><br/>
    <input type="submit" value="提交参数">
    </form>
    1
    2
    3
    4
    5
    6

    控制器方法的 doOther 方法形参为 name 和 age

    /*
    * 请求参数名和处理器方法的形参名不一样
    * @RequestParam:定义在处理器方法的形参前面
    * 属性:1. value,请求参数名,可省略
    * 2. required,是一个Boolean类型,默认为true,表示必须包含参数
    * */
    @RequestMapping(value = "/other.do")
    public ModelAndView doOther(@RequestParam("iname" ) String name,
    @RequestParam("iage") Integer age){
    System.out.println("doOther方法的,name="+name+", age="+age);

    ModelAndView mv = new ModelAndView();
    mv.addObject("myname",name);
    mv.addObject("myage",age);
    mv.setViewName("show");
    return mv;
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17

    但是有一个问题,当不通过首页传入参数,直接加载网址:http://localhost:8080/03_recevieparam/other.do ,将会报400的错,说明请求端输入有问题,如下图


    此时将@RequestParam标签的属性required改为 fslse,不用参数也可以显示show.jsp。
    当然我们希望required=true,作为前端限制。


    public ModelAndView doOther(@RequestParam(value = "iname",required=false) String name,
    @RequestParam(value = "iage",required = false) Integer age){
    1
    2


    对象参数接收
    将处理器方法的参数定义为一个对象,对象的属性名要求和请求中参数名一致


    先在vo包下定义一个Student 类


    ————————————————
    版权声明:本文为CSDN博主「头发在风中哭泣」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_40350981/article/details/109645897

  • 相关阅读:
    北京高考零分作文(看到最后一句笑喷了!)
    关于前几天无法访问的问题
    用 PHP 读取和编写 XML DOM[转]
    Delphi对INI文件的详细操作方法
    如何在WebService中获取客户端的IP地址
    正则表达式30分钟入门教程
    [原创]shell对xml操作的脚本
    预防SQL注入攻击之我见(好文章)
    表驱动方法(非常好的数据结构)
    请教shell读写XML问题
  • 原文地址:https://www.cnblogs.com/huaobin/p/14908517.html
Copyright © 2011-2022 走看看