您的位置:首页 > 其它

使用FreeMarker的Web Project例子

2016-03-17 21:31 447 查看


1创建一个名为FreemarkerDemo的Web Project

2删除index.jsp,新建index.html,index.html中的内容为:

<html>
<head>
<title>Hello
FreeMarker Example</title>
<metahttp-equiv="Content-type"content="text/html;
charset=utf-8">
</head>
<body>
点击下面链接看看效果:
<hr>
<ahref="hello.do">调用Hello模板</a>
</body>

</html>

3把web.xml中的index.jsp改为index.html,改完后的内容为:

<?xmlversion="1.0"encoding="UTF-8"?>
<web-appversion="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>

</web-app>

4把FreemarkerDemo部署到tomcat服务器中





5运行FreemarkerDemo程序



6在浏览器中输入http://localhost:8080/FreemakerDemo



7点击上图中的“调用Hello模板”,报错



下面要利用FreeMarker来实现这个点击事件。
1在WebRoot下创建lib目录,将freemarker包放到lib目录下并刷新



2在WebRoot下新建templates目录,在此目录下新建hello.ftl文件,其内容为

<html>
<head>
<title>hello</title>
</head>
<body>
<h1>Hello${user}!</h1>
</body>

</html>



3在src下创建example包,在example包下创建Hello.java,其内容为:

package example;

importjava.io.*;
importjava.util.*;
importjavax.servlet.ServletException;
importjavax.servlet.http.*;
importfreemarker.template.*;

publicclass
HelloextendsHttpServlet {
privatestaticfinallongserialVersionUID
= 1L;
privateConfigurationcfg;

publicvoid
init()
{
//初始化FreeMarker配置
//创建一个Configuration实例
cfg =newConfiguration();
//设置FreeMarker的模版文件位置
cfg.setServletContextForTemplateLoading(getServletContext(),"templates");
}

publicvoid
doGet(HttpServletRequestrequest,HttpServletResponse response)throwsServletException,IOException
{
//建立数据模型
Map<String, String> map=
new HashMap<String, String>();
//放入对应数据key value
map.put("user","Zheng");
//取得模版文件
Template t =cfg.getTemplate("hello.ftl");
//开始准备生成输出
//使用模版文件的charset作为本页面的charset
//使用text/html MIME-type
response.setContentType("text/html; charset="
+ t.getEncoding());
PrintWriter out =response.getWriter();

//合并数据模型和模版,并将结果输出到out中
try
{
t.process(map,out);//用模板来开发servlet可以只在代码里面加入动态的数据
}
catch(TemplateExceptione)
{
thrownew
ServletException("处理Template模版中出现错误",
e);
}
}
}

4在web.xml中添加

<servlet>

<servlet-name>Hello</servlet-name>

<servlet-class>example.Hello</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>Hello</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

添加完之后的web.xml内容为:
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appversion="2.5"xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>example.Hello</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>

</web-app>

5重新运行项目,并且在浏览器中输入http://localhost:8080/FreemakerDemo



点击“调用Hello模板”超链接,跳转到另一个界面

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: