SpringMVC关于参数问题案例

方式一:传统request接收

复制代码
//param01?id=12
@RequestMapping("/param01")
public String param01(HttpServletRequest request){
    String id = request.getParameter("id");
    System.out.println("id="+id);
    return "success";
}

方式二:直接接收参数

复制代码
//param02?id=12
@RequestMapping("/param02")
public String param02(int id){
    System.out.println("id="+id);
    return "success";
}

方式三:数组接收参数

复制代码
//param03?likes=aa&likes=bb
@RequestMapping("/param03")
public String param03(String[] likes){
    System.out.println("likes="+ Arrays.toString(likes));
    return "success";
}

方式四:集合接收参数

复制代码
//param04?likes=aa&likes=bb
@RequestMapping("/param04")
public String param04(@RequestParam("likes")List<String>likes){
    System.out.println("likes="+ likes);
    return "success";
}

方式五:日期接收参数

方法一:字符串接收

复制代码
//param05?date=2024-08-27
@RequestMapping("/param05")
public String param05(String date) throws ParseException {
    System.out.println("date="+ date);
    //将字符串转化为日期
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date date1 = sdf.parse(date);
    System.out.println(date1);
    return "success";
}

方法二:形式参数直接接收

这种方式对日期有严格要求,yyyy/MM/dd

复制代码
//param15?date=2024/08/27
@RequestMapping("/param15")
public String param15(Date date){
    System.out.println("date="+ date);
    //将字符串转化为日期
    return "success";
}

方法三:初始化绑定

复制代码
//param25?date=2024/08/27
@InitBinder
public void initData(WebDataBinder wdb){
    wdb.registerCustomEditor(Date.class,new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true));
}
@RequestMapping("/param25")
public String param25(Date date){
    System.out.println("date="+ date);
    //将字符串转化为日期
    return "success";
}

方式六:RestFull风格传参

复制代码
//param06/name
@RequestMapping("/param06/{name}")
public String param06(@PathVariable String name){
    System.out.println("name="+ name);
    return "success";
}

方式七:对象传参

复制代码
@RequestMapping("/param07")
public String param07(User user){
    System.out.println("user="+ user);
    return "success";
}
相关推荐
w_zero_one1 小时前
递归算法(一)
java·开发语言·算法
SL_staff1 小时前
私有化低代码不是减配版开发:JVS双模式建模如何重建IT交付信任
java·低代码·spring cloud
墨着染霜华2 小时前
Redocly 生成 OpenAPI 接口文档踩坑实录|Node 版本兼容 + 接口地址错误问题解决
java
文丑颜不良啊2 小时前
LeetCode1881~1990题目解析
java·leetcode
十碗饭吃不饱3 小时前
后端运维:网络联通、进程查询、Java服务启动脚本
java·运维·网络
T_Wizard3 小时前
后端转 AI 应用开发,我先把这 12 个名词理清了:一张图看懂架构、RAG、Tool Calling 与 MCP
java·ai编程
杨航 AI3 小时前
JEV的用法
java·前端·数据库
灿飞3 小时前
Kotlin与Java虚拟机七:空安全:把十亿美元的错误消灭在类型系统里
java·kotlin
知识搬运临时工3 小时前
JVM 删掉偏向锁之后,一次无竞争锁从 0.3 纳秒变成 5.4 纳秒
java
IT枫斗者枫哥3 小时前
用了BigDecimal还差一分?用四组Java代码查清原因
java·后端