SpingMVC传参(一般方式 + json方式)
一般方式
package controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
//@RequestMapping("/user") //整个类的访问前缀
public class UserController {
@RequestMapping("/save")
@ResponseBody
private String save(){
System.out.println("user save");
return "{'user':'save'}";
}
@RequestMapping("/post")
@ResponseBody
public String post(String name, int age){
System.out.println("user post : name = " + name + " age = " + age);
return "{'user':'post'}";
}
}
post为传值方法,要传的参数写在形参中,在地址中,save方法为GET请求,post方法的传参方式也为GET请求,即在地址中GET方式可以传参,而POST请求为表单传参方式
地址中参数传入以“ ?”开始,多个参数以“&”隔开
参数名传递需要保持一致,否则接收不到
形参可以是一个实体类,在地址中分别传入实体类的对应属性,属性名需一致
若实体类中又有实体类对象,则地址传值时需要以“对象名.属性=值”的方式
若要传数组类的值,则属性名相同即可达到效果↓
若要传数列类的值,则在形参前使用@RequestParam进行注解↓
若需要在地址中取别名,可以使用
@RequestParam(“别名”) 形参
对方法中的形参进行注解
GET请求↓
POST请求↓
若在表单传中文字符串参数时出现乱码,则在服务容器初始化配置中给出过滤器
json方式
1.导入依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.14.2</version>
</dependency>
2.添加项目库
3.SpringMVC配置中使用@EnableWebMvc开启WebMvc
4.传值方法中使用@RequestBody对形参进行注解
注:@RequestBody注解在一个处理器方法只能使用一次
List类↓
实体类↓
传入josn↓
5.传值
List类↓
实体类↓
若实体类中还有实体类同样使用实体类格式
时间参数
形参为Date地址中传值格式为“年/月/日”即"yyyy/MM/dd"
若要“yyyy-MM-dd”形式进行传参,则对Date形参进行@DateTimeFormat(pattern=“yyyy-MM-dd”)注解
若还要加上时分秒,则对Date形参进行@DateTimeFormat(pattern=“yyyy/MM/dd HH:mm:ss”)注解
注:带上时分秒没有"-"形式