浏览 3533 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-12
最后修改:2010-01-04
这里写下我的第一个Demo,同大家一起探讨
Demo环境需要机器上安装ant(具体安装步骤,请google), freemarker.jar包, 数据源(xml), 编写freemarker模版文件(ftl)
首先我们来看一下DEMO的目录结构:
lib中存放freemarker的jar包:
xml中存放数据源文件(Test.xml),具体代码下面有写:
我们先来看数据源文件, 选一个熟悉的文件 Test.xml (web工程里面的web.xml文件) <?xml version="1.0" encoding="UTF-8"?> <webapp> <displayname>appfuse</displayname> <servlet> <servletname>action</servletname> <servletclass>org.springframework.web.servlet.DispatcherServlet</servletclass> <loadonstartup>2</loadonstartup> </servlet> <servletmapping> <servletname>action</servletname> <urlpattern>*.html</urlpattern> </servletmapping> <servlet> <servletname>action2</servletname> <servletclass>org.springframework.web.servlet.DispatcherServlet</servletclass> <loadonstartup>2</loadonstartup> </servlet> <servletmapping> <servletname>action</servletname> <urlpattern>*.html</urlpattern> </servletmapping> <sessionconfig> <sessiontimeout>10</sessiontimeout> </sessionconfig> <welcomefilelist> <welcomefile>index.jsp</welcomefile> </welcomefilelist> <errorpage> <errorcode>500</errorcode> <location>/error.jsp</location> </errorpage> <errorpage> <errorcode>400</errorcode> <location>/index.jsp</location> </errorpage> <errorpage> <errorcode>403</errorcode> <location>/403.jsp</location> </errorpage> <errorpage> <errorcode>404</errorcode> <location>/404.jsp</location> </errorpage> </webapp>
再来看看模版文件:webxml2html.ftl <#escape x as x?html> <?xml version="1.0" encoding="UTF-8"?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <!--获取xml节点值--> <title>${.node.webapp.displayname}</title> <meta name="keywords" content="This is generater by FreeMarker" /> </head> <body bgcolor="#ffffff"> <h2> J2EE 系统名字 <a name="top" href="#"> ${.node.webapp.displayname} </a> </h2> <h2> <!--提供循环操作--> 系统中的Servlet有: <#list .node.webapp.servlet as servlet> <hr /> <h3> name:<a name="${servlet.servletname}">${servlet.servletname}</a> </h3> <h3> class:<a name="${servlet.servletclass}">${servlet.servletclass}</a> </h3> 加载顺序: <#noescape>${servlet.loadonstartup}</#noescape> <p><a href="#top">Back to top</a></p> </#list> <hr> <h3> 系统的Session超时时间: ${.node.webapp.sessionconfig.sessiontimeout} </h3> <hr> <h3> 欢迎页面: ${.node.webapp.welcomefilelist.welcomefile} </h3> <#list .node.webapp.errorpage as erros> <hr /> <h3> 错误代码:<a name="${erros.errorcode}">${erros.errorcode}</a> </h3> <h3> 跳转路径:<a name="${erros.location}">${erros.location}</a> </h3> <p><a href="#top">Back to top</a></p> </#list> </h2> </body> </#escape>
ant 的任务文件:build.xml
<?xml version="1.0"?> <project name="GenerateHtml" default="generate-test" basedir="."> <taskdef name="freemarker" classname="freemarker.ext.ant.FreemarkerXmlTask"> <classpath> <fileset dir="lib"> <include name="*.jar" /> </fileset> </classpath> </taskdef> <target name="generate-test"> <!-- 建立html目录 --> <mkdir dir="html-test" /> <!-- 源目的: xml目录 目标:html目录 webxml2html.ftl来生成文件,数据源是Test.xml文件--> <freemarker basedir="xml" destdir="html-test" includes="**/Test.xml" template="webxml2html.ftl" /> </target> </project>
完成以后,利用CMD定位到build.xml路径.执行命令 ant generate-test 就可以生成文件, (在html-test文件夹下)
生成后的文件如下: <?xml version="1.0" encoding="UTF-8"?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>appfuse</title> <meta name="keywords" content="This is generater by FreeMarker" /> </head> <body bgcolor="#ffffff"> <h2> J2EE 系统名字 <a name="top" href="#"> appfuse </a> </h2> <h2> <!--提供循环操作--> 系统中的Servlet有: <hr /> <h3> name:<a name="action">action</a> </h3> <h3> class:<a name="org.springframework.web.servlet.DispatcherServlet">org.springframework.web.servlet.DispatcherServlet</a> </h3> 加载顺序: 2 <p><a href="#top">Back to top</a></p> <hr /> <h3> name:<a name="action2">action2</a> </h3> <h3> class:<a name="org.springframework.web.servlet.DispatcherServlet">org.springframework.web.servlet.DispatcherServlet</a> </h3> 加载顺序: 2 <p><a href="#top">Back to top</a></p> <hr> <h3> 系统的Session超时时间: 10 </h3> <hr> <h3> 欢迎页面: index.jsp </h3> <hr /> <h3> 错误代码:<a name="500">500</a> </h3> <h3> 跳转路径:<a name="/error.jsp">/error.jsp</a> </h3> <p><a href="#top">Back to top</a></p> <hr /> <h3> 错误代码:<a name="400">400</a> </h3> <h3> 跳转路径:<a name="/index.jsp">/index.jsp</a> </h3> <p><a href="#top">Back to top</a></p> <hr /> <h3> 错误代码:<a name="403">403</a> </h3> <h3> 跳转路径:<a name="/403.jsp">/403.jsp</a> </h3> <p><a href="#top">Back to top</a></p> <hr /> <h3> 错误代码:<a name="404">404</a> </h3> <h3> 跳转路径:<a name="/404.jsp">/404.jsp</a> </h3> <p><a href="#top">Back to top</a></p> </h2> </body>
效果图: 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-01-11
我们客户也有类似需要,静态化产品页面,小可不才,没想出好的解决办法,这下可以参考一下楼主的解决方案。受教了。
|
|
返回顶楼 | |
发表时间:2010-07-28
最后修改:2010-07-28
|
|
返回顶楼 | |