java - 配置DataSourceResourceLoader

标签 java velocity

引用我的previous question ,我想知道如何配置 DatasourceResourceLoader 来满足我的要求。

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

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

我从中挑选模板的表格的组织方式如下: this .

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

请注意以下几点:

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

编辑

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

相关文章:

java - 仅用于两个逗号分隔值的正则表达式,使第二个值保持可选

java - 想要在点击的每个按钮上显示插页式广告,但广告显示在一个按钮上

java - 获取以 Apache 速度显示在浏览器中的请求 URI

testing - 尝试运行带有速度/ cucumber 测试的 meteor 应用程序时,我的控制台中出现 "Bad response from Chimp Server"

java - XPath 连接相同的标记名

java - 在其自己的 cmd.exe 中运行工具

arrays - 使用速度 split() 将字符串拆分为数组似乎不起作用

java - 如何将速度模板加载到 EJB 中以用作邮件模板

java - Spring 批处理 : How to set up a job repository for every job

java - 显示速度脚本的空值而不是空