spring boot——请求与参数校验——spring-mvc——通过实体类对象获取(推荐)
通过实体类对象获取(推荐)
我们可以在 Controller 控制器方法的形参中设置一个实体类形参,如果请求参数的参数名与实体类中的属性名一致,那么 Spring MVC 会自动将请求参数封装到该实体类对象中。此时我们就可以通过该实体类对象获取所需的请求参数了。
注:我们推荐大家使用实体类对象来获取请求参数,这也是最常用的请求参数的方式之一,它能够有效地解决“控制器方法形参不适用于请求参数过多的请求”问题。
package org.example.entity; public class Student { private String firstName; private String lastName; public void setFirstName(String firstName) { this.firstName = firstName; } public String getFirstName() { return firstName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getLastName() { return lastName; } }
package org.example.controller.requestparam; import org.example.entity.Student; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; @RestController public class ForParamController { // http://localhost:8080/getRequestParam?name=C语言中文网&url=c.biancheng.net /** * 通过 HttpServletRequest 获取请求参数 * @param request * @return */ @RequestMapping("/getRequestParam") public String requestParam(HttpServletRequest request) { String name = request.getParameter("name"); String url = request.getParameter("url"); System.out.println("name:" + name); System.out.println("url:" + url); return "cheng_gong"; } // http://localhost:8080/getRequestParam?firstName=C语言中文网&lastName=c.biancheng.net /** * 通过 HttpServletRequest 获取请求参数 * @param request * @return */ @RequestMapping(value = "/getRequestParam2") public String test2(HttpServletRequest request) { String a = request.getParameter("firstName"); String b = request.getParameter("lastName"); return a + b; } //http://localhost:8080/getRequestParam3?name=tom&language=java @RequestMapping("/getRequestParam3") public String test3(String name, String language) { System.out.println("a:" + name); System.out.println("b:" + language); return "success"; } // http://localhost:8080/getRequestParam4?name=tom&language=2 @RequestMapping("/getRequestParam4") public String test4(String name, Integer language) { System.out.println("a:" + name); System.out.println("b:" + language); return "success"; } // http://localhost:8080/testRequestParam5?name=Java&pass=yyds @RequestMapping("/testRequestParam5") public String testRequestParam(@RequestParam("name") String username, @RequestParam("pass") String password) { System.out.println(username + "," + password); return "success"; } // http://localhost:8080/requestParam6?username=Java // http://localhost:8080/requestParam6?username= @RequestMapping("/requestParam6") public String requestParam22(@RequestParam(value = "username",defaultValue = "abc21") String name) { return name; } // http://localhost:8080/requestParam7?firstName=Java&lastName=python @RequestMapping(value = "/requestParam7") public String test5(Student student) { String a = student.getFirstName(); String b = student.getLastName(); return a+b; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
2022-01-15 app开发快速理解——Activity的生命周期
2022-01-15 app开发快速理解——广播——Broadcast
2022-01-15 app开发快速理解——多线程——分线程通过Handler操作界面
2020-01-15 postman——集合——执行集合——测试脚本——pm对象简单示例02
2020-01-15 postman——集合——执行集合——测试脚本——pm对象简单示例01
2020-01-15 postman——集合——执行集合——测试脚本——示例10——pm.response返回响应信息(body、code、status、cookies、headers等)
2020-01-15 postman——集合——执行集合——测试脚本——示例09——检查响应体的json值