首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析Spring的Handlebars.java视图中的虚拟路径

解析Spring的Handlebars.java视图中的虚拟路径
EN

Stack Overflow用户
提问于 2016-07-11 08:32:45
回答 1查看 261关注 0票数 1

我正在尝试将一个Handlebars.java作为Spring的一个简单的视图引擎。我已经为HandlebarsViewResolver添加了一个Bean,并且可以获得一个视图来呈现。

我现在要做的是将视图中的虚拟路径解析为绝对路径。例如,我有一个指向样式表的链接:

代码语言:javascript
复制
<link type="stylesheet" src="/style/theme.css" />

我需要URL解析到一个绝对路径,考虑到应用程序可能运行的虚拟主机路径。如果应用程序是通过http://test.site.com/dev/请求的,则该URL将解析为/dev/style/theme.css。对于给定的请求,我可以很容易地获得基本路径信息,但我唯一能想到的就是为每个上下文向工具栏上下文添加一个basePath属性,并通过前缀解析虚拟路径。

代码语言:javascript
复制
<link type="stylesheet" src="{{baseUrl}}/style/theme.css" />

这意味着要么让我的所有模型继承一组基本属性,要么使用HandlerInterceptor来处理要添加到属性中的每个模型。

我还研究过创建助手函数,但遇到了必须为每个请求添加上下文的问题,因为Spring似乎无法为每个请求创建一个ViewResolver,它依赖于我可以在助手函数定义中使用的HttpServletRequest

我情不自禁地感觉到这是一个非常常见的场景,在大多数视图引擎中都是适合的。我错过了什么很明显的东西吗?

EN

回答 1

Stack Overflow用户

发布于 2022-04-06 14:27:41

HandlerInterceptor绝对是一个很好的选择。

另一个选项可以是类似于以下的ControllerAdvice

代码语言:javascript
复制
// Target all Controllers annotated with @HandlebarsController
@ControllerAdvice(annotations = HandlebarsController.class)
public class AnnotationAdvice {

    @Autowired
    ConfigServiceImpl configService;

    @ModelAttribute("baseUrl")
    public String getBaseUrl() {
       return configService.findBaseUrl();
    }
}

Spring控制器建议

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38302427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档