velocity调用java静态方法_java模板引擎

velocity调用java静态方法_java模板引擎跟学习其它技术一样,首先到官网去下载必要的包,下载地址:http://velocity.apache.org/download.cgi目前使用的是velocity1.6.3,由于自己的E文水平一般,在使用之前也到网上搜索了相关文章,然后根据前辈们的指导和自己的实践结合.记录下此文,以便以后能快速回忆.一、在eclipse中新建一个工程,把包velocity-1.6.3.jar到在WEB-INF…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

跟学习其它技术一样,首先到官网去下载必要的包,下载地址:http://velocity.apache.org/download.cgi目前使用的是velocity 1.6.3,由于自己的E文水平一般,在使用之前也到网上搜索了相关文章,然后根据前辈们的指导和自己的实践结合.记录下此文,以便以后能快速回忆.

一、在eclipse 中新建一个工程,把包velocity-1.6.3.jar到在WEB-INF/lib下,

二、新建了一个hello.vm的测式模板

Html代码

b212d5639dc6fc4159eb130fa6142ffa.png

HELLO! $name,Welcome to velocity!

三、新建一个java属性文件 velocity.properties,参考了别人的配置示例,详细的说明以后再理解

Java代码

b212d5639dc6fc4159eb130fa6142ffa.png

#Velocity.properties配置示例

# 如果需要系统从WEB-INF/classes路径加载Velocity的模板文件,取消下面两行的注释

#resource.loader=class

#class.resource.loader.class=org.apache.Velocity.runtime.resource.loader.ClasspathResourceLoader

#如需禁止系统通过文件系统加载模板文件,注释如下两行

resource.loader=file

file.resource.loader.path=D:\Workspaces\MyEclipse 8.5\velocity\WebRoot\WEB-INF\velocityTempalte

#确定从何处加载velocity的模板文件

file.resource.loader.cache=false

#设置读取模板文件的解码格式,GB2312是为了支持中文

input.encoding=gb2312

#配置输出视图文件的解码格式,GB2312是为了支持中文

output.encoding=gb2312

四、新建一个测式类VelocityTest.java

Java代码

b212d5639dc6fc4159eb130fa6142ffa.png

package velocity.test;

import java.io.FileOutputStream;

import java.io.PrintWriter;

import java.io.StringWriter;

import org.apache.velocity.Template;

import org.apache.velocity.VelocityContext;

import org.apache.velocity.app.Velocity;

public class VelocityTest {

public static void main(String[] args) {

try {

// 初始化

Velocity.init(“D:\\Workspaces\\MyEclipse 8.5\\velocity\\WebRoot\\WEB-INF\\velocity.properties”);

//取得velocity上下文

VelocityContext context = new VelocityContext();

context.put(“name”, “sea”);

Template template = Velocity.getTemplate(“hello.vm”);

StringWriter writer = new StringWriter();

template.merge(context, writer);

PrintWriter filewriter = new PrintWriter(new FileOutputStream(“d:\\a.html”),true);

filewriter.println(writer.toString());

filewriter.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

最后运行该类时出现如下错误:

Java代码

b212d5639dc6fc4159eb130fa6142ffa.png

Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/commons/collections/ExtendedProperties

发现缺少了集合包,把velicity.1.6.3解压后的lib目录下的commons-collections-3.2.1.jar拷入工程的lib目录下,继续运行,还是出现以后错误:

Java代码

b212d5639dc6fc4159eb130fa6142ffa.png

org.apache.velocity.exception.VelocityException: Failed to initialize an instance of org.apache.velocity.runtime.log.ServletLogChute with the current runtime configuration.

at org.apache.velocity.runtime.log.LogManager.createLogChute(LogManager.java:206)

at org.apache.velocity.runtime.log.LogManager.updateLog(LogManager.java:255)

at org.apache.velocity.runtime.RuntimeInstance.initializeLog(RuntimeInstance.java:795)

at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:250)

at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:615)

at org.apache.velocity.runtime.RuntimeSingleton.init(RuntimeSingleton.java:243)

at org.apache.velocity.app.Velocity.init(Velocity.java:93)

at velocity.test.VelocityTest.main(VelocityTest.java:17)

Caused by: java.lang.UnsupportedOperationException: Could not retrieve ServletContext from application attributes

at org.apache.velocity.runtime.log.ServletLogChute.init(ServletLogChute.java:73)

at org.apache.velocity.runtime.log.LogManager.createLogChute(LogManager.java:157)

… 7 more

最后分别把 commons-lang-2.4.jar和commons-logging-1.1.jar拷入lib目录才正常

输出d:\a.html下的文件如下

Java代码

b212d5639dc6fc4159eb130fa6142ffa.png

HELLO! sea,Welcome to velocity!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179682.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • soft thresholding and hard thresholding

    soft thresholding and hard thresholding今天在看MichaelElad大牛的论文《OntheRoleofSparseandRedundantRepresentationsinImageProcessing》中,看到了softthresholding和hardthresholding这两个概念,很是不明白,所以上网查了一些资料,先把网上查的东西贴出来讨论下。网上资料大体是说这是指两类的函数,分别

    2022年6月8日
    60
  • c++中cstring头文件_C语言中头文件的来源

    c++中cstring头文件_C语言中头文件的来源cstring头文件中的函数类别函数名简介使用赋值memset给数组赋初值使用链接

    2022年9月13日
    2
  • 汽车电子设计之SBC芯片简单认识[通俗易懂]

    汽车电子设计之SBC芯片简单认识[通俗易懂]参考英飞凌SBC官网资料:https://www.infineon.com/cms/cn/product/automotive-system-ic/system-basis-chips-sbc/SBC芯片在汽车电子领域可谓占一席之地了。那么什么是SBC?怎么用?用在哪里?主要特性?1.什么是SBC?SBC的系统框图系统基础芯片(SBC,SystemBasisChip),从广义上来说,是一种包含电源、通信、监控诊断、安全监控等特性以及GPIO的独立芯片。随着汽车电子模块的日益小型化,对低功耗和

    2025年11月1日
    2
  • DIV滚动条显示

    DIV滚动条显示DIV滚动条所谓DIV滚动条,就是利用DIV标签,在里面嵌入CSS样式表,加入overflow的属性值,这样,当div所规范的区域内的内容达到一定程序时,滚动条就派上用场1、滚动条常用属性:overflow:auto为自动,scroll为出现滚动条overflow-x:横向滚动条overflow-y:纵向滚动条代码样例:  这里是你要显示的内容,只有需要时才出现滚动条。  这里是你要显示的内容,无论是否需要都出现滚动条。

    2022年7月13日
    17
  • Eureka集群配置

    Eureka集群配置eureka作为注册中心,生产环境必须多节点部署,保证其高可用性。现以两台服务器来完成集群部署。服务器A:172.16.21.34服务器B:172.16.21.35方式一:使用ip形式完成。服务器A:172.16.21.34server:port:7777spring:application:name:register#指定eureka客户端的登录账户security:user:…

    2022年5月1日
    45
  • 好中层的八个标准:如何成为一名优秀的管理者

    好中层的八个标准:如何成为一名优秀的管理者 4月底公司给所有CSDN中层干部做了两天《如何成为一名优秀的管理者》的系统培训,讲师是胡斌老师,胡斌老师有多年的IT行业从业经验,讲的还是非常不错的,不过收尾有点仓促,比较可惜。讲完之后,蒋涛又接着给我们送了一本胡老师推荐的数《格鲁夫:给经理人的第一堂课》。利用五一的时间,结合培训和这本书,对以前的管理工作进行了反思,发现真正的要做一个好的中层真的是非常不容易,总结了一下,可以用八个字来表达“上

    2022年6月3日
    57

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号