freemarker定义自己的标签错误(一)

freemarker定义自己的标记

1、错误描写叙述

freemarker.core.ParseException: Token manager error: freemarker.core.TokenMgrError: Unknown directive: #macro on line: 12, column: 101, in template: myself.ftl in myself.ftl
	at freemarker.template.Template.<init>(Template.java:174)
	at freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:447)
	at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:360)
	at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:235)
	at freemarker.template.Configuration.getTemplate(Configuration.java:578)
	at freemarker.template.Configuration.getTemplate(Configuration.java:543)
	at com.you.freemarker.FreemarkerTemplate.getTemplate(FreemarkerTemplate.java:52)
	at com.you.freemarker.FreemarkerTemplate.printFtl(FreemarkerTemplate.java:76)
	at com.you.test.freemarker.FreemarkerTest.studentPrint(FreemarkerTest.java:217)
	at com.you.test.freemarker.FreemarkerTest.testMyself(FreemarkerTest.java:204)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

2、错误原因

<#--freemarker自己定义标签-->
<#macro write>
${repeat("张三丰",3)}
<#macro>

3、解决的方法

又犯了相同的错误。结束标签没有封口

<#--freemarker定义自己的标记-->
<#macro write>
${repeat("张三丰",3)}
</#macro>
时间: 2024-10-23 19:28:49

freemarker定义自己的标签错误(一)的相关文章

基于SSM3框架FreeMarker自定义指令(标签)实现

通过之前的Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解系列文章,我们已经成功的整合到了一起,这次大象将在此基础上对框架中的FreeMarker模板做一个扩展,详细说明如何实现自定义指令(标签)功能.    我们在开发的时候,往往对一些数据字典形式的数据,想将它封装成通用的模块以便于使用,如果使用JSP做展示层,可以创建自定义标签来实现,现在换成FreeMarker视图,我们一样可以达到想要的目的.    实现FreeMarker指令其实很简单

用freemarker定义宏实现自定义公用控件

参考文章: Freemarker自定义标签的简单分析 定义一个基本的文本框:传入参数为:resourceName idName resourceVal="" idVal="" classVal="",其中resourceName ,idName为必填, resourceVal="" idVal="" classVal="" 分别为选填,其中必填都作为空间的 name,选填的都作为结果值,

strut2 自己定义文件上传错误信息

在文件上传过程中我们能够指定拦截器对文件类型.后缀名.大小进行设定,action中的配置: <interceptor-ref name="fileUpload"> <param name="maximumSize">500000</param> <param name="allowedTypes">application/vnd.ms-excel</param> <param na

前台界面(1)---HTML基本定义及常见标签

已经很久没有更新博客了,从今天开始要继续走在学习的路上,话不多说,先来干货: 目录 1. HTML定义 2. H标签 3. Img标签 4. P标签 5. A标签 6. 无序列表 7. 有序列表 8. Form表单 9. Text input文本输入框 10. Button submit提交按钮 11. 单选按钮 12. 复选按钮 13. Div标签 -------------------------------------------黄金分割线-------------------------

freemarker定义一个连续的序列

1.简易说明 定义一个连续的序列,并打印出序列中的元素 2.实现源码 <#--freemarker定义了一个连续的序列--> <#assign nums=1..100/> <#list nums as num> ${num} </#list> 3.实现结果 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

SpringMVC和Freemarker整合,带自定义标签的使用方法

SpringMVC和Freemarker整合,带自定义标签的使用方法. [参考来源:http://www.360doc.com/content/14/1225/14/1007797_435663342.shtml] SpringMVC现在是比较热门的一种框架了,使用起来感觉还是很不错的,现在我分享一下集体的配置和使用,希望对学习SpringMVC的朋友有用.一.首先我们做准备工作,下载Spring包,下载Freemarker包.二.配置web.xml. 1 2 3 4 5 6 7 8 9 10

freemarker定义自己的标记(三)-nested说明

freemarker定义自己的标记 1.nested指令 是可选的,能够在<#macro>和</#macro>之间使用在不论什么位置和随意次数 2.演示样例说明 <#macro tag> <#nested/> </#macro> <@tag> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</l

前端开发中最常见的12个HTML标签错误(其实也不一定就错,只是这样写不太好)

开发者在写HTML代码的时候一定要仔细,并熟练掌握HTML规则,因为一不留神则可能出现一些微小的错误,但有可能会导致严重的后果. http://www.iteye.com/news/26074本文列举了一些在HTML中常见的错误,并且给出了如何避免错误的方法.相信这些方法会对前端开发者有一些帮助. 错误1:嵌套错误 正确使用HTML tag的结束标记非常重要,HTML tag的结束标记的顺序要和开始标记一致,而新手往往会忽视这点.如果顺序不对,系统会出现验证错误并且得不到预期的结果.因此,要注意

freemarker模板引擎 常用标签

freemarker正常生成HTML的模板引擎,公司需求将书籍来源的数据发放到不同的渠道,每个渠道生成特定的模板,这样数据自动生成相应的格式,主要是生成xml格式,所以根据网上的Demo改成了对应项目测试的Demo.--------------------此为背景. 正常的模板文件.flt的,但是发现改成.xml格式的也完全没有问题,我表示非常高兴,哇卡卡卡~ 网上有很多标签大全,我就捡我用过的标签写:(不断的补充ing...) 1.<#if></#if> <#elseif&