Ich habe einen Spring HandlerInterceptor eingerichtet, um dem HttpServletRequest ein Attribut hinzuzufügen, damit es vom Controller gelesen werden kann. Leider scheint das nicht zu funktionieren, was mir seltsam vorkommt. Mache ich etwas falsch? Irgendeine Idee, wie man die Daten vom Auffänger zum Kontroller überträgt?Spring 3 HandlerInterceptor übergibt Informationen an Controller
Hier ist der vereinfachte Code der beiden betroffenen Klassen
public class RequestInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
request.setAttribute("my-role", "superman");
}
[...]
}
@RestController
@RequestMapping("Test")
public class TestController {
public final Logger logger = LoggerFactory.getLogger(getClass());
@RequestMapping(value = "something")
public void something(HttpServletRequest request) {
logger.info(request.getAttribute("my-role"));
}
[...]
}
Die request.getAttribute („my-Rolle“) null zurück ... aber die vorbehalten Wert zurückgibt, wenn ich es in der postHandle lesen der HandlerInterceptor, ich fühle mich wie ich etwas vermisse ...
EDIT: Ich fand heraus, dass durch die Sitzung mit "request.getSession(). SetAttribute" funktioniert als ein Charme, noch verstehe ich nicht warum Die Anfrage selbst funktioniert in diesem Anwendungsfall nicht.
Post alle Ihre Abfangjäger Code – george