views:

173

answers:

1

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
+4  A: 

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.

Bozho
@Bozho Good job (+1)
Arthur Ronald F D Garcia