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:
- readability
- unit testing
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.