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

  • 相关阅读:
    Windows 2003安全配置最佳方法(转)
    令人十分怨念的tomcat注册成windows服务(转)
    AMR开源编码jrtplib中与int系统重定义问题解决
    由系统熵转移的思考
    此男因为什么被送进医院?
    [转]风水师的郁闷
    飞盘奇门局例我能顺利办好护照拿到签证出国参加会议吗?
    最近工作方面发生了一些大事情,所以特地为此摇了一挂,请高手进来断一断。
    概率面前的错误
    杜新会一个精彩占例之反推
  • 原文地址:https://www.cnblogs.com/huaobin/p/14908517.html
Copyright © 2011-2022 走看看