日常提交
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