DataSourceResourceLoader

DataSourceResourceLoader

关于我的previous question,我想知道如何配置DatasourceResourceLoader以满足我的要求。

更具体地说,我这样调用#parse()宏。

#parse("$vendorid/template-name.vm")


我从中选择模板的表的组织方式类似于java - 配置DataSourceResourceLoader-LMLPHP

如何解释#parse()宏以仅选择针对特定供应商ID放置的模板。

请注意以下几点:


我不想更改表结构或name列的值。
name列可能包含冗余值,但是vendoridname的组合永远不会相同。


编辑

我知道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/

10-08 22:51