FreeMarker模板继承

动机

freemarker默认是没有模板继承功能的,为其添加新指令@extends,@block,@override,@super,这些指令属于rapid-framework的扩展。

问题

但是,都说加上rapid-framework的jar包,然后修改配置文件就够了, 但是你会发现出现一下问题:

12-May-2017 16:43:11.123 SEVERE [http-nio-8081-exec-1]
org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service()
for servlet [mvc-dispatcher] in context with path [] threw exception
[Handler processing failed; nested exception is
java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils]
with root cause java.lang.ClassNotFoundException:
org.apache.commons.lang.StringUtils at
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
at
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
at
cn.org.rapid_framework.freemarker.directive.DirectiveUtils.getRequiredParam(DirectiveUtils.java:34)
at
cn.org.rapid_framework.freemarker.directive.BlockDirective.execute(BlockDirective.java:22)
at freemarker.core.Environment.visit(Environment.java:427) at
freemarker.core.UnifiedCall.accept(UnifiedCall.java:101) at
freemarker.core.Environment.visit(Environment.java:327) at
freemarker.core.Environment.visit(Environment.java:333) at
freemarker.core.Environment.process(Environment.java:306) at
freemarker.template.Template.process(Template.java:384) …… at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

注意, 最开头的报错:

java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils]
with root cause java.lang.ClassNotFoundException:
org.apache.commons.lang.StringUtils

所以还需要添加commons.lang相关jar包

开发环境

Tomcat 8.0.42
java 1.8.0_121
IntelliJ IDEA

需要的jar包

  • maven用户
    在pom.xml中添加以下依赖
<dependency>
     <groupId>com.googlecode.rapid-framework</groupId>
     <artifactId>rapid-core</artifactId>
     <version>4.0.5</version>
</dependency>
<dependency>
     <groupId>commons-lang
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值