@PathVariable、@RequestHeader、@RequestParam、@RequestBody 注解使用

注解使用

@PathVariable、@RequestHeader、@RequestParam、@RequestBody

@RestController
public class ParameterController {
    /**
     * @PathVariable:获取路径变量的注解
     * restFul风格传递参数
     * @param id
     * @param name
     * @return
     */
    @RequestMapping("/info/{id}/{name}")
    public Map<String, Object> info(@PathVariable("id") Integer id, @PathVariable("name") String name) {
        HashMap<String, Object> map = new HashMap<>();
        map.put("id", id);
        map.put("name", name);
        System.out.println(map);
        return map;
    }
}

/**
 * restFul风格传递参数时,可以用一个map集合接收所有参数
 * 注意:参数前还是需要写@PathVariable注解
 * @param map
 * @return
 */
@RequestMapping("/{id}/{name}/{age}/{gender}")
public Map<String, Object> info(@PathVariable Map<String, Object> map){
        System.out.println(map);
        return map;
        }

  /**
 * @param host
 * @param map
 * @return
 * @RequestHeader 获取请求头的注解
 * 当注解加了值的时候是获取某个请求头
 * 如果注解不加值,用一个map集合则获取的是所有的请求头
 */
@RequestMapping("/befo")
public Map<String, Object> befo(@RequestHeader("host") String host,@RequestHeader Map<String, Object> map){
        System.out.println(host);
        System.out.println(map);
        return map;
        }

   /**
 * RequestParam 获取请求参数的注解
 * 当注解加了值的时候是获取某个请求参数
 * 如果注解不加值,用一个map集合则获取的是所有的请求参数
 * 注意:也可以在有多个路径变量的url路径中获取某个参数
 *
 * @param id
 * @param name
 * @param age
 * @param gender
 * @param map
 * @param map2
 * @return
 */
@RequestMapping("/{id}/{name}")
public Object info(@PathVariable("id") Integer id,
@PathVariable("name") String name,
@RequestParam("age") Integer age,
@RequestParam("gender") String gender,
@PathVariable Map<String, Object> map,
@RequestParam Map<String, Object> map2
        ){
        System.out.println(age);
        System.out.println(map);
        System.out.println(map2);
        ArrayList<Object> objects=new ArrayList<>();
        objects.add(map);
        objects.add(map2);

        return objects;
        }
<a href="/2/xiang?age=18&gender=男">
    "/2/xiang?age=18&gender=男"
</a>

    /**
 * @param requestBody
 * @return
 * @RequestBody:获取请求体的内容
 * 注意:只有post请求才有请求体
 */
@RequestMapping("/info2")
public String info2(@RequestBody String requestBody){
        System.out.println(requestBody);
        return requestBody;
        }
<form action="/info2" method="post">
    <input type="text" name="name">
    <input type="password" name="pwd">
    <input type="submit" value="提单">
</form>

posted @   阿向向  阅读(145)  评论(0编辑  收藏  举报
编辑推荐:
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
阅读排行:
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· 语音处理 开源项目 EchoSharp
· 《HelloGitHub》第 106 期
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 使用 Dify + LLM 构建精确任务处理应用
点击右上角即可分享
微信分享提示