控制器页面:
package com.awaimai.web; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; import java.util.Map; @RestController public class kzq { /** * 无注解获取参数时,参数名称和HTTP请求参数必须一致 * @param name String 姓名 * @param age int 年龄 * @param score double 分数 * @return 响应json字符-@ResponseBody注解将map转为json */ @RequestMapping("/param/noannotation") @ResponseBody public Map<String, Object> noAnnotation(String name, int age, double score) { Map<String, Object> paramMap = new HashMap<String, Object>(); paramMap.put("name", name); paramMap.put("age", age); paramMap.put("score", score); return paramMap; } @RequestMapping("/123") public String testweb01() { return "abc"; } @RequestMapping("/1234") public String testweb02() { return "123abc"; } }
无注解下获取参数,需要控制器层参数与HTTP请求栏参数名称一致,这样后台就可以获取到请求栏的参数。
web访问如下:
URL: http://localhost:8080/param/noannotation?name=zhangsan&age=14&score=89.1
====================================================================================================
PS:
方法中,我们接收三个参数,分别为name,age和score
启动springboot后,在浏览器中请求URL:http://localhost:8080/param/noannotation?name=zhangsan&age=14&score=89.1
前端页面会自动得到我们输入的参数的json形式。
如果我们的请求URL中name不给参数值 http://localhost:8080/param/noannotation?name=&age=12&score=89.1
请求可以正常跳转。
如果我们将int 或 long 参数为空,给URL http://localhost:8080/param/noannotation?name=lisi&age=12&score=
请求会报错。
无法将String型参数转化为需要的double型。
这里可以看出,如果我们不给参数赋值,那么spring会将空着的参数默认按照String型空字符串处理。
所以,如果是String型的参数,为空时不报错的;若是非String型参数,则必须非空。