In short, I want something like:
public String action(@SessionAttribute User user) {..}
instead of
public String action(HttpSession session) {
User user = session.getAttribute("user");
}
Mainly for the sake of:
I found a solution.
The idea is to register a custom WebArgumentResolver
for the AnnotationMethodHandlerAdapter
, which handles a custom annotation - @SessionAttribute
(or @SessionParam
).
One note to the code posted there is that param.getParameterName()
can be used if no value
is specified.
For those arriving via Google, as of at least 4.3.2.RELEASE, Spring includes a @SessionAttribute
annotation built-in:
public String action(
@SessionAttribute(required=false, name="user") User user) {
// ...
}
A custom solution is no longer necessary.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With