日期:2014-05-19  浏览次数:20718 次

freemarker中使用Java自定义标签问题
我建立一个Java自定义标签  功能是显示文章分类
然后我们就可以在jsp中调用他啦

现在我是用用freemarker生成静态页面,想把这个标签放到模板文件ftl中
在生成静态页面的时候把这个标签中的内容显示出来
能共实现吗



在网上找了下资料,用如下方法可以实现

自定义标签在freemarker中的支持
引用
<#assign datacvg=JspTaglibs["/WEB-INF/datacvg.tld"] />
调用
<@datacvg.table name='mytable' headcol="2|3|4|5" showflag="1|1|1|1"
sqlkey="selecttest2"
isfirstshow=1 icheck=2 ispage=1 />
注意:
在"/WEB-INF/datacvg.tld"路径下的这个文件,必须要有这个,多余的类全去掉,不然,它会解析别的类,这样,回导致找不到类的问题。
同时在web.xml中也要加以下代码:
<!--为了在freemarket标签中使用struts2标签所加的 -->
<servlet>
<servlet-name>JSPSupportServlet</servlet-name>
<servlet-class>
org.apache.struts2.views.JspSupportServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
但是我在使用的时候,总是出现错误
错误信息如下

如果能实现应该怎么写呢

Expression JspTaglibs is undefined on line 1, column 16 in test.ftl.
The problematic instruction:
----------
==> assignment: mytag=JspTaglibs["/WEB-INF/mytaglib.tld"] [on line 1, column 1 in test.ftl]
----------

Java backtrace for programmers:
----------
freemarker.core.InvalidReferenceException: Expression JspTaglibs is undefined on line 1, column 16 in test.ftl.
at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)
at freemarker.core.DynamicKeyName._getAsTemplateModel(DynamicKeyName.java:75)
at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
at freemarker.core.Assignment.accept(Assignment.java:90)
at freemarker.core.Environment.visit(Environment.java:209)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
------解决方案--------------------
该回复于2010-04-29 12:37:30被版主删除