我想传播一些路径变量作为请求范围bean的一部分。
我希望这个bean是不可变的,并且我不想手动解析路径,而是依靠javax.servlet
的东西
现在,我看到了在Provider<MyPathVariables>
中设置@ControllerAdvice
的解决方案
但我不喜欢使MyPathVariables
可变。
另一个选择是将HttpServletRequest
注入到我的bean构造函数中并手动解析路径,我也不喜欢这种双重工作,尤其是我不喜欢依赖javax.servlet
春季应用。
还有其他选择吗?
答案 0 :(得分:1)
Spring创建一个map属性,该属性包含按名称在请求上键入的路径参数。属性名称存储在此常量中:
org.springframework.web.servlet.HandlerMapping#URI_TEMPLATE_VARIABLES_ATTRIBUTE
您可以使用以下方法获取它:
Map<String, String> getPathParameters(HttpServletRequest request){
return (Map<String, String>) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE)
}