SSM学习记录2:传参(注释方式 + SprigMVC项目 + 2022发布版本IDEA)
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")@ResponseBodyprivate String save(){System.out.println("user save");return "{'user':'save'}";}@RequestMapping("/post")@ResponseBodypublic 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类↓
实体类↓
5.传值
List类↓
实体类↓
若实体类中还有实体类同样使用实体类格式
时间参数
形参为Date地址中传值格式为“年/月/日”即"yyyy/MM/dd"
若要“yyyy-MM-dd”形式进行传参,则对Date形参进行@DateTimeFormat(pattern=“yyyy-MM-dd”)注解
若还要加上时分秒,则对Date形参进行@DateTimeFormat(pattern=“yyyy/MM/dd HH:mm:ss”)注解
注:带上时分秒没有"-"形式