Spring MVC Controller接收参数

key=value

基本的数据类型及其包装类 String

    @RequestMapping("/simple")
    //RequestMapping指定参数要穿的参数名
    public String simple(@RequestMapping("userId") int id, String name) {
        System.out.println("id=" + id);
        System.out.println("name=" + name);
        return "hello";
    }

JavaBean 

/**
* Java Bean接收表单参数(Java Bean参数没有使用任何注解)
*/
@RequestMapping("/bean")
public String bean(User user) {
    System.out.println(user);
    return "hello";
}

 

 

数组

        * hobby:中,文 两个 后端接收的时候需要Spring过滤器提供的字符编码

 /**
* arrayList数组接收表参数
* hobby:1,2,3 三个
* hobby:123 一个
* hobby:中,文 两个 后端接收的时候需要Spring过滤器提供的字符编码
*/
@RequestMapping(value = "/array", method = RequestMethod.POST)
public void array(String[] hobbies, HttpServletResponse response) throws IOException {
    for (String hobby : hobbies) {
        System.out.println(hobby);
    }
    response.setContentType("text/plain;charset=utf-8");
    //不想返回一个界面
    response.getWriter().print("执行成功");
}

 

 

 List集合

        使用list必须使用声明对象的注解@RequestParam        json参数List使用的是@RequesBody

        使用@ResponseBody返回json

/**
* 创建一个list对象接收表单参数
*/
@RequestMapping(value = "/list", method = RequestMethod.POST, produces = "text/plain;charset=utf-8")
//只要不想显示界面,就可以用ResponseBody,只不过返回json用的多    Json形式响应头的Content-Type
@ResponseBody
public String list(@RequestParam List<String> hobbies) {
    for (String hobby : hobbies) {
        System.out.println(hobby);
    }
    return "执行成功";
}

 Map集合

        Map集合同样使用@RequestParam创建Map对象

                                        @ResponseBody返回json

/**
* 使用Map接收表单参数
* 与JavaBean不同 JavaBean必须得包含所具有的属性名
* Map可以是任意类型的key{key=value,key=value}
* 参数确定==>Java Bean
* 不确定==>Map
*/
@RequestMapping(value = "/map", produces = "text/plain;charset=utf-8")
@ResponseBody
public String map(@RequestParam Map<String, Object> map) {
    System.out.println(map);
    return "执行成功";
}

 

 

 

json

        String list map javabean都可以接收json

                需要使用MappingJackson2HttpMessageConverter==>需要导入jackson依赖

        jackson- core.jar jackson - annotations.jar jackson - databind.jar

JavaBean

@RequestMapping("/bean")
/**
* Map,List前面必须得加注解
* @RequsetBody就是json
* @RequsetParam就是form表单
*/
public Object jsonToBean(@RequestBody User user) {
    Map<String, Object> result = new HashMap<>();
    result.put("code", 200);
    result.put("msg", "成功");
    result.put("data", "");
    return result;
}

 

List集合 1

/**
* ["读书","看报"]是一个json数组 produces解决发中文返回?????问题 Content-Type拉丁==>utf-8
*/
@RequestMapping(value = "/list", produces = "text/plain;charset=utf-8")
public String jsonToList(@RequestBody List<String> hobbies) {
    for (String hobby : hobbies) {
        System.out.println(hobby);
    }
    return "执行成功";
}

 

 

List集合 2

/**
     * [{"username":"zs"},{"age":11}]
     */
    @RequestMapping(value = "/list2", produces = "text/plain;charset=utf-8")
    public Object jsonToList2(@RequestBody List<User> users) {
        users.forEach(System.out::println);
        return "执行成功";
    }

 

 

Map集合

 /**
     * Map接收json参数
     */
    @RequestMapping("/map")
    public String jsonToMap(@RequestBody Map<String, Object> map) {
        System.out.println(map);
        return "{ \"code\":200,\"msg\":\"success\"}";
    }

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值