创建web项目时要确保主类
SpringbootWebProjectApplication类
与可扫描到的controller处于同一级目录下
例如:
编写hello类之后在主类中执行
运行结果:
简单参数示例:
package edu.wust.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class Param {
@RequestMapping("simpleParam")
public String simpleParam(String name , Integer age){
System.out.println(name+" : "+age);
return "OK";
}
}
运行application,在postman中设置相关参数
运行结果如下:
实体参数示例:
这里创建一个cls包用于存储一些普通类
User类(由于是私有变量,这里需要单独写出get set方法):
package edu.wust.controller.cls;
import org.springframework.boot.SpringApplication;
public class User {
private String name;
private Integer age;
private Address address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
Address类:
package edu.wust.controller.cls;
public class Address {
private String city;
private String province;
}
编写Pojo类用于在web端呈现输出结果:
package edu.wust.controller;
import edu.wust.controller.cls.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class Pojo {
@RequestMapping("/Pojo")
public String complexPojo(User user){
System.out.println(user);
return "OK";
}
}
在postman中的运行结果:
数组集合参数:
数组:
@RequestMapping("/arrayParam")
public String arrayParam(String[] hobby){
System.out.println(Arrays.toString(hobby));
return "ok";
}
@RequestMapping("/listParam")
public String listParam(@RequestParam List<String> hobby){
Systme.out.println(hobby);
return "ok";
}
运行结果:
这里的 List列表中存储的是String类型的变量,需要指定泛型,并且需要@RequestParam注解将多个请求参数值封装到列表中
日期参数:
@RequestMapping("/dateParam")
public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){
System.out.println(updateTime);
return "ok";
}
日期输入一定要严格按照pattern格式输入
JSON参数:
@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody User user){
System.out.println(user);
return "ok";
}
运行结果:
JSON的请求方式一定为post,在postman中运行时需要调整body-raw-JSON,填写JSON格式的请求参数
这里使用了一个ResqustBody注解将json格式封装到User的实体类中,键名需要与属性名保持一致
路径参数(参数成为url的一部分):
@RequestMapping("/path/{id}/{name}")
public String pathParam(@PathVariable Integer id,@PathVariable String name){
System.out.println(id+" "+name);
return "ok";
}
每一个参数都需要用@PathParam来封装