spring-mvc-框架参数传递
1、表单数据--接收: 可以直接使用同名参数;
不同名:@RequestParam(代码中接收注解)
创建类,类属性名称与前端相同;
2、前端json格式:使用对象接收,需要使用@RequestBody(代码中接收注解)
3、在url中(restful格式):@PathVariable(代码中接收注解)
4、url中(?page=1)使用同名参数接收/不同名:@RequestParam(代码中接收注解)
创建模型:
public class Page {
private String page;
private String size;
public void setPage(String page) {
this.page = page;
}
public void setSize(String size) {
this.size = size;
}
public String getPage() {
return page;
}
public String getSize() {
return size;
}
@Override
public String toString() {
return "Page{" +
"page='" + page + '\'' +
", size='" + size + '\'' +
'}';
}
}
一、url中参数restful风格
参数接收:
@RequestMapping(value = "/demo/getUrl/{page}/{size}") public String getUrl(@PathVariable("page") String page, @PathVariable("size")String size){ return "url:"+page+"============"+size; }
二、接收表单/get参数
1、使用请求对象接收
@RequestMapping(value = "/demo/getFrom3") public String getFrom3(HttpServletRequest request){ String page=request.getParameter("page")==null?"null":request.getParameter("page"); String size=request.getParameter("size")==null?"null":request.getParameter("size"); return page+"============"+size; }
2、参数注入接收
参数同名:
@RequestMapping(value = "/demo/getFrom2") public String getFrom2(String page,String size){ return page+"============"+size; }
参数不同名:
@RequestMapping(value = "/demo/getFrom4") public String getFrom4(@RequestParam(value = "page",required = false) String page2, String size){ return page2+"============"+size; }
2、创建类注入接收
@RequestMapping(value = "/demo/getFrom") public String getFrom(Page page){ return page.toString(); }
三、接收json格式数据:
参数格式:
{
"page": 1,
"size": 2
}
1、使用@RequestBody注入模型接收
可以不创建类,使用String,Map,JSONObject等接收,要求 请求参数可以转换为控制器的参数类型
控制器接收:
/** * @Description 通过请求体传递参数 ,使用模型对象接收json格式参数, * 可以自动封装到模型对象中 * @Param JSONObject/Map/String/Page page 可以转换的情况下,会自动转换为参数类型。 * @return java.lang.String */ @RequestMapping(value = "/demo/getJson1") public String getJson1(@RequestBody(required = false) Page page){// return page.toString(); }
2、使用请求对象接收
控制器接收:
/** * @Description 通过请求对象,获取请求输入流,读取请求体的信息 * @Param HttpServletRequest request * @return java.lang.String */ @RequestMapping(value = "/demo/getJson2") public String getJson3(HttpServletRequest request){ String input = null; StringBuffer requestBody = new StringBuffer(); try { BufferedReader reader = request.getReader(); while((input = reader.readLine()) != null) { requestBody.append(input); } } catch (IOException e) { e.printStackTrace(); } System.out.println("============"+requestBody); return requestBody.toString(); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律