|
此版本仍在开发中,尚未稳定。如需最新的稳定版本,请使用 Spring Framework 7.0.6! |
@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会话中。它将一直保留在那里,直到另一个控制器方法使用SessionStatus方法参数来清除存储,如下例所示:
-
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 值存储在Servlet会话中。 |
| 2 | 清除Servlet会话中的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 值存储在Servlet会话中。 |
| 2 | 清除Servlet会话中的Pet值。 |