跳到主要内容

@SessionAttributes

DeepSeek V3 中英对照 @SessionAttributes

@SessionAttributes 用于在请求之间将模型属性存储在 WebSession 中。它是一个类级别的注解,声明了特定控制器所使用的会话属性。通常,它会列出模型属性的名称或模型属性的类型,这些属性应透明地存储在会话中,以便后续请求可以访问。

考虑以下示例:

@Controller
@SessionAttributes("pet") 1
public class EditPetForm {
// ...
}
java
  • 使用 @SessionAttributes 注解。

在第一次请求时,当向模型中添加一个名为 pet 的属性时,它会自动提升并保存在 WebSession 中。它将一直保留在那里,直到另一个控制器方法使用 SessionStatus 方法参数清除存储为止,如下例所示:

@Controller
@SessionAttributes("pet") 1
public class EditPetForm {

// ...

@PostMapping("/pets/{id}")
public String handle(Pet pet, BindingResult errors, SessionStatus status) { 2
if (errors.hasErrors()) {
// ...
}
status.setComplete();
// ...
}
}
}
java
  • 使用 @SessionAttributes 注解。

  • 使用 SessionStatus 变量。