@RequestBody @RequesetParam HttpServletRequst 对象接收 = @ModelAttribute 对象 接收表单提交 @PathVariable
https://www.cnblogs.com/xfeiyun/p/17938484
在Spring中 Controller注解用于指示Spring类的实例是一个控制器,相对于实现Controller接口变得更加简单。而且实现Controller接口只能处理一个单一的请求,而是用@Controller注解可以支持同时处理多个请求动作,更加灵活。
@Controller用于标记一个类,使用他标记的类就是一个SpringMVC Controller对象,即一个控制器类,Spring使用扫描机制查找应用程序中所有基于注解的控制器类。分发处理器会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping注解的方法才是真正处理请求的处理器。
GET请求和POST请求都支持
@Controller
@RequestMapping("/param")
public class TestParamController {
private static final Logger logger = LoggerFactory.getLogger(TestParamController.class);
/**
* 请求参数名和Controller方法的参数一致
* produces 设置返回参数的编码格式可以设置返回数据的类型以及编码,可以是json或者xml
* {
* @RequestMapping(value="/xxx",produces = {"application/json;charset=UTF-8"})
* 或
* @RequestMapping(value="/xxx",produces = {"application/xml;charset=UTF-8"})
* 或
* @RequestMapping(value="/xxx",produces = "{text/html;charset=utf-8}")
* }
* @param name 用户名
* @param pwd 密码
* @return
*
*/
@RequestMapping(value = "/add", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
@ResponseBody
public String addUser(String name, String pwd) {
logger.debug("name:" + name + ",pwd:" + pwd);
return "name:" + name + ",pwd:" + pwd;
}
}
通过访问:GET http://localhost:8080/param/add?name=张三&pwd=123456
GET请求和POST请求都支持
Employee实体类:
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Employee {
private Integer id;
private String lastName;
private Integer gender;
private String email;
private Integer dId;
}
controller实现
@RestController
@RequestMapping("/param")
@Slf4j
public class ParamsController {
@GetMapping("/employee")
public String addEmployee(Employee employee){
return "lastName:"+employee.getLastName()+",email:"+employee.getEmail();
}
}
通过访问:http://127.0.0.1:8080/param/employee?lastName=战三&[email protected]