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();
    }
复制代码

 

posted @   hehehenhen  阅读(51)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示