Velocity 模板加载方式如何拓展

发布于 2021-11-07 21:51:05 字数 219 浏览 705 评论 6

个人了解 velocity 提供文件,类路径和jar三种模板加载方式。

现在有个需求是这样的: 要对外提供一个 servlet   ,别人提供两个参数:一个是数据,另一个是template  但是都是以url的形式给我  我怎么通过url 去加载模板  去得数据呢?

不能 把模板写成本机文件 然后再加载吧

请各位大侠 指点啊

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

少女净妖师 2021-11-12 13:25:37

多谢红薯大哥,问题已经解决。api里的那个
URLResourceLoader可以试用,之所以不行是因为少配置了属性***.resource.loader.root  这个属性。 这个属性还支持数组 ,也就是说 可以配置多个站点的ip:端口/appname/  这点还是很强大。 有一点不好的是 如果不配置的话 就会报错。配置成“”  如
***.resource.loader.root=“”;这样在getTemplate(“http://....”)是没有问题滴。我看了源码 Engine要是对这种没有配置的属性做个容错就好啦

瑾夏年华 2021-11-12 12:42:41

API提供的那个urlloader 能用么?我试了下 好像不行哈

泪冰清 2021-11-12 09:35:38

我用API里那个 : Properties properties = new Properties(); properties.setProperty(Velocity.ENCODING_DEFAULT, "UTF-8"); properties.setProperty(Velocity.INPUT_ENCODING, "UTF-8"); properties.setProperty(Velocity.OUTPUT_ENCODING, "UTF-8"); properties.setProperty(Velocity.RESOURCE_LOADER, "URLResourceLoader"); properties.setProperty("URLResourceLoader.resource.loader.class", "org.apache.velocity.runtime.resource.loader.URLResourceLoader"); Velocity.init(P); Template t = Velocity.getTemplate("http://9.186.105.82:8080/velocityDemo/test.vm"); StringWriter sw = new StringWriter(); VelocityContext vc = new VelocityContext(); t.merge(vc, sw); 报道错还是找不到: SEVERE: ResourceManager : unable to find resource 'http://9.186.105.82:8080/velocityDemo/test.vm' in any resource loader. Exception in thread "main" org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'http://9.186.105.82:8080/velocityDemo/test.vm'

飘过的浮云 2021-11-12 09:33:57

配置写法:resource.loader = Loader类名

飘过的浮云 2021-11-12 09:24:47

我看api里面有个 org.apache.velocity.runtime.resource.loader.URLResourceLoader 这个可以加载根据url得到的模板么? 如果可以,配置文件的Velocity.RESOURCE_LOADER 应该写什么? 还有如果自己实现ResourceLoader的时候 Velocity.RESOURCE_LOADER 又怎么写呢?

墨洒年华 2021-11-11 01:19:56

可以自行实现一个 ResourceLoader ,然后怎么加载就看你自己了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文