Si estamos usando Spring como Framework para nuestras aplicaciones web Java, nos resultará útil saber como acceder a los atributos de las peticiones(Request). Spring nos aporta la classe ‘RequestContextHolder’ para acceder a los atributos de la siguiente manera:
@RequestMapping("/miurl") public String miurl(Model model) { RequestContextHolder.currentRequestAttributes().setAttribute( "miattributo", valoratributo, RequestAttributes.SCOPE_REQUEST ); return "mipagina"; }
El código se explica por si mismo. Importante el tercer páramelo, que nos permite especificar si nuestro atributo tendrá alcance de la petición(SCOPE_REQUEST), alcance de sesión(SCOPE_SESSION) o a nivel de sesión global(SCOPE_GLOBAL_SESSION), es decir, que será visible por todos los usuarios de la web.
Si queremos leer el atributo desde otra classe de nuestra aplicación web lo haremos así:
RequestContextHolder.currentRequestAttributes().getAttribute( "miatributo", RequestAttributes.SCOPE_REQUEST )
Si queremos acceder a el desde, por ejemplo, desde una plantilla thymeleaf, JSF(JavaServer Faces) o JSP:
<!-- Thymeleaf --> <div th:text=”${miatributo}”/> <!-- JSF --> <div>#{miatributo}</div> <!-- JSP --> <div>${miatributo}</div>