SpringMVC 传参

1. 把内容写到方法(HandlerMethod)参数中,SpringMVC 只要有这个内容,就会注入内容.

2. 基本数据类型参数

    2.1 默认保证参数名称和请求中传递的参数名相同

@Controller
public class DemoController {
    @RequestMapping("demo")
    public String demo(String name,int age){
        System.out.println("执行 demo"+" "+name+" "+age);
        return "main.jsp";
    }
}

    2.2 如果请求参数名(如表单中的name属性)和方法参数名不对应使用@RequestParam()赋值

public String demo(@RequestParam(value="name1") String name,@RequestParam(value="age1")int age){
System.out.println("执行 demo"+" "+name+" "+age);
return "main.jsp";
}

    2.3 如果方法参数是基本数据类型(不是封装类)可以通过 @RequestParam 设置默认值.

        2.3.1 防止没有参数时报 500的错误

@RequestMapping("page")
public String page(@RequestParam(defaultValue="2") int pageSize,@RequestParam(defaultValue="1") int pageNumber){
System.out.println(pageSize+" "+pageNumber);
return "main.jsp";
}

    2.4 如果强制要求必须有某个参数

@RequestMapping("demo2")
public String demo2(@RequestParam(required=true) String name){
System.out.println("name 是 SQL 的查询条件,必须要传递 name 参数"+name);
return "main.jsp";
}

3. HandlerMethod 中参数是对象类型

    3.1 请求参数名和对象中属性名对应(get/set 方法)

@RequestMapping("demo4")
public String demo4(People peo){
return "main.jsp";
}

4. 请求参数中包含多个同名参数的获取方式

    4.1 复选框传递的参数就是多个同名参数

    4.2 将其存储到一个容器中

@RequestMapping("demo5")
public String demo5(String name,int age,@RequestParam("hover") ArrayList<String> abc){
System.out.println(name+" "+age+" "+abc);
return "main.jsp";
}

5. 请求参数中"对象.属性”格式

    5.1 jsp 中代码

<input type="text" name="peo.name"/>
<input type="text" name="peo.age"/>

    5.2 新建一个类

        5.2.1 对象名和参数中点前面名称对应

public class Demo {
private People peo;

    5.3 控制器(参数为Demo对象)

@RequestMapping("demo6")
public String demo6(Demo demo){
System.out.println(demo);
return "main.jsp";
}

6. 在请求参数中传递集合对象类型参数

    6.1 jsp 中格式

<input type="text" name="peo[0].name"/>
<input type="text" name="peo[0].age"/>
<input type="text" name="peo[1].name"/>
<input type="text" name="peo[1].age"/>

    6.2 新建类

public class Demo {
private List<People> peo;

    6.3 控制器

@RequestMapping("demo6")
public String demo6(Demo demo){
System.out.println(demo);
return "main.jsp";
}

7. restful 传值方式

    7.1 简化 jsp 中参数编写格式

    7.2 在 jsp 中设定特定的格式

<a href="demo8/123/abc">跳转</a>

    7.3 在控制器中

        7.3.1 在@RequestMapping 中一定要和请求格式对应

        7.3.2 {名称} 中名称自定义名称

        7.3.3 @PathVariable 获取@RequestMapping 中内容,默认按照 方法参数名称去寻找.

        7.3.4 由于格式中包含了“/”,所以,返回的跳转路径必须为绝对路径,不能是相对路径,不然会出错

@RequestMapping("demo8/{id1}/{name}")
public String demo8(@PathVariable String name,@PathVariable("id1") int age){
    System.out.println(name +" "+age);
    return "/main.jsp";
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值