对于最新的稳定版本,请使用 Spring Framework 6.2.10! |
@SessionAttributes
@SessionAttributes
用于在 HTTP Servlet 会话中存储模型属性 请求。 它是一个类型级注释,用于声明使用的会话属性特定的控制器。这通常列出模型属性的名称或类型模型属性应透明地存储在会话中以供后续访问请求。
以下示例使用@SessionAttributes
注解:
-
Java
-
Kotlin
@Controller
@SessionAttributes("pet") (1)
public class EditPetForm {
// ...
}
1 | 使用@SessionAttributes 注解。 |
@Controller
@SessionAttributes("pet") (1)
class EditPetForm {
// ...
}
1 | 使用@SessionAttributes 注解。 |
在第一个请求中,当名称为pet
,被添加到模型中,它会自动提升到 HTTP Servlet 会话并保存在 HTTP Servlet 会话中。它仍然在那里直到另一个控制器方法使用SessionStatus
method 参数来清除storage,如以下示例所示:
-
Java
-
Kotlin
@Controller
@SessionAttributes("pet") (1)
public class EditPetForm {
// ...
@PostMapping("/pets/{id}")
public String handle(Pet pet, BindingResult errors, SessionStatus status) {
if (errors.hasErrors) {
// ...
}
status.setComplete(); (2)
// ...
}
}
1 | 存储Pet 值。 |
2 | 清除Pet 值。 |
@Controller
@SessionAttributes("pet") (1)
class EditPetForm {
// ...
@PostMapping("/pets/{id}")
fun handle(pet: Pet, errors: BindingResult, status: SessionStatus): String {
if (errors.hasErrors()) {
// ...
}
status.setComplete() (2)
// ...
}
}
1 | 存储Pet 值。 |
2 | 清除Pet 值。 |