我正在尝试将 Handlebars.java 连接为 Spring MVC 的简单视图引擎。我已经为 Bean 添加了一个 Bean,HandlebarsViewResolver
并且可以获得要渲染的视图。
我现在要做的是将我的视图中的虚拟路径解析为绝对路径。例如,我有一个样式表的链接:
<link type="stylesheet" src="/style/theme.css" />
我需要将 URL 解析为绝对路径,该路径考虑到应用程序可能在其下运行的虚拟主机路径。如果通过http://test.site.com/dev/
URL 请求应用程序将解析为/dev/style/theme.css
. 对于给定的请求,我可以轻松获取基本路径信息,但我唯一能想到的就是basePath
为每个上下文添加一个属性到 Handlebars 上下文,并通过前缀解析虚拟路径。
<link type="stylesheet" src="{{baseUrl}}/style/theme.css" />
这意味着要么让我的所有模型都从一组基本属性继承,要么使用 aHandlerInterceptor
来处理每个模型以添加到属性中。
我也研究过创建一个辅助函数,但我遇到了同样的问题,即必须为每个请求添加上下文,因为 Spring 似乎无法ViewResolver
为每个请求创建一个依赖于HttpServletRequest
我可以在辅助函数定义中使用。
我不禁觉得这是一个非常常见的场景,在大多数视图引擎中都可以满足。我错过了一些非常明显的东西吗?