Thymeleaf在3.1(https://www.thymeleaf.org/doc/articles/thymeleaf31whatsnew.html)版中删除了#session
、#httpServletRequest
等模板表达式.
我们在相对较大的应用程序中大量使用这些应用程序.我编写了一个拦截器来在每个请求时填充这些属性,因为我不想将它们添加到每个需要的控制器中(如迁移指南中所述).
有谁知道更好的实现这一点的方法吗?
Thymeleaf在3.1(https://www.thymeleaf.org/doc/articles/thymeleaf31whatsnew.html)版中删除了#session
、#httpServletRequest
等模板表达式.
我们在相对较大的应用程序中大量使用这些应用程序.我编写了一个拦截器来在每个请求时填充这些属性,因为我不想将它们添加到每个需要的控制器中(如迁移指南中所述).
有谁知道更好的实现这一点的方法吗?
我了解到在这种情况下可以使用@ControllerAdvice
(见https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc).
用@ControllerAdvice
注解的类可以有用@ModelAttribute
注解的方法,以填充multiple个控制器的属性(如果没有另外指定,则所有这些控制器).
在我的 case 中:
@ControllerAdvice
public class CommonDataAdvice {
@Autowired
private HttpServletRequest request;
@ModelAttribute("request")
public HttpServletRequest populateRequest(){
return request;
}
}