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