引用我的previous question ,我想知道如何配置 DatasourceResourceLoader
来满足我的要求。
更具体地说,我像这样调用 #parse()
宏。
#parse("$vendorid/template-name.vm")
如何解释 #parse()
宏以仅选择针对特定供应商 ID 的模板。
请注意以下几点:
- 我不想更改表结构或
name
列的值。 name
列可能包含冗余值,但vendorid
和name
的组合永远不会相同。
编辑
我知道 Velocity 的 IncludeEventHandler
,如果我可以通过覆盖此事件来解决我的问题,我该怎么做?
最佳答案
Velocity 的 IncludeEventHandler
无法解决您的问题,因为它只能更改资源的路径,而不能获取资源本身。
不过,您可以在数据库端创建一个 View ,让您按照自己的需要准确获取模板:
CREATE VIEW templates_view (id VARCHAR(100), html CLOB, ts DATETIME)
AS SELECT CONCAT(vendorid, '/', name) FROM templates;
这是 MySQL 语法,对于其他引擎,您将使用 TIMESTAMP 类型和/或 ||根据需要连接运算符...
这样,您就可以通过一个键列来访问您的模板,并可以初始化 DatasourceResourceLoader 以使用此 View 。
关于java - 配置DataSourceResourceLoader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34704938/