日常提交
This commit is contained in:
@@ -325,6 +325,39 @@ public String update(@Valid AccountForm form, BindingResult result,
|
|||||||
// ...
|
// ...
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
#### @SessionAttributes
|
||||||
|
@SessionAttributes注解用于将model attribute存储在http session中,从而在不同的请求间都可以访问该attribute。
|
||||||
|
@SessionAttributes为class-level的注解,注解的value应该列出model attribute name或model attribute的类型。
|
||||||
|
该注解使用如下所示:
|
||||||
|
```java
|
||||||
|
@Controller
|
||||||
|
@SessionAttributes("pet")
|
||||||
|
public class EditPetForm {
|
||||||
|
|
||||||
|
// ...
|
||||||
|
|
||||||
|
@PostMapping("/pets/{id}")
|
||||||
|
public String handle(Pet pet, BindingResult errors, SessionStatus status) {
|
||||||
|
if (errors.hasErrors) {
|
||||||
|
// ...
|
||||||
|
}
|
||||||
|
status.setComplete();
|
||||||
|
// ...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
当第一个请求到来时,name为pet的Model Attribute被添加到model中,其会被自动提升并保存到http session中,知道另一个controller method通过SessionStatus方法来清除存储。
|
||||||
|
#### @SessionAttribute
|
||||||
|
如果想要访问已经存在的Session Attribute,可以在handler method的参数上添加@SessionAttribute,如下所示:
|
||||||
|
```java
|
||||||
|
@RequestMapping("/")
|
||||||
|
public String handle(@SessionAttribute User user) {
|
||||||
|
// ...
|
||||||
|
}
|
||||||
|
```
|
||||||
|
#### Multipart
|
||||||
|
在MultipartResolver被启用之后,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user