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