环境:maven
安装 freemarker 到pom.xml
1.去 http://search.maven.org/ 搜索freemarker,获取到最新或指定版本的freemarker。我用2.3.19的,地址:http://search.maven.org/#artifactdetails%7Corg.freemarker%7Cfreemarker%7C2.3.19%7Cjar
2.Copy Dependency Information 到pom.xml之间,如下所示
<dependencies>
...
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.19</version>
</dependency>
</dependencies>
3.这样pom.xml就配完,mvn compile就会自动download这个组件
增加对JspSupportServlet的支持到web.xml
1.JspSupportServlet对freemarker模板中使用Struts2的标签支持是必要的,对应的class是org.apache.struts2.views.JspSupportServlet。我们在web.xml中对其配制成自动加载。如下
<servlet>
<servlet-name>JspSupportServlet</servlet-name>
<servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
2. 还需要在freemarker的模板中加入实现导入struts-tags的目的,这样freemarker中也可以使用struts的tag了
<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"]>
3.具体模板代码向下看
增加一个action去响应用户的请求到struts.xml
1. 增加一个action映射到struts.xml,这样当用户请求时,struts 会通过此action自动格式化所指模版。struts.xml中增加如下内容:
<action name="show_index" class="Index">
<result type="freemarker">/show/index.jsp</result>
</action>
2. /show/index.jsp就是模板,扩展名也可以是flt等任意
看/show/index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"]>
</head>
<body>
<div>
${showcase_num}
${talk}
</div>
</body>
</html>
1.其中${showcase_num} ${talk}就是freemarker的语法。这两个值都将通过Action类即Index类的getShowcase_num 和 getTalk获取到。看下面的Index类源码
写Index类
1.直接上代码,实现getXXX方法,让freemaker去获取指定内容
public class Index implements Action{
int showcase_num = 30;
public int getShowcase_num()
{
return showcase_num;
}
public String getTalk ()
{
return "你在说啥";
}
public String execute () throws Exception
{
return SUCCESS;
}
}
2.That's all。自己体会