struts2中使用freeMarker
1.在工程中导入struts2 jar包(里面已经包含了freeMarker的jar包)
2.TestAction.java
package com.test.struts2.action;
?
import com.opensymphony.xwork2.ActionSupport;
?
publicclass TestAction extends ActionSupport {
?
??? private String name;
?
??? @Override
??? public String execute() {
?????? return"success";
??? }
?
??? public String getName() {
?????? returnname;
??? }
?
??? publicvoid setName(String name) {
?????? this.name = name;
??? }
?
}
3.在WebContent目录下新建templates文件夹
4.在templates文件夹下新建result.ftl
<html>
? <head>
??? <title>My JSP 'index.jsp' starting page</title>
? </head>
? <body>
??? <h1>${name}</h1>
??? <@s.form action="reg" >
?????? <@s.textfield label="用户名" name="uname"? />
?????? <@s.submit />
??? </@s.form>
? </body>
</html>
5.struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
??? "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
??? "http://struts.apache.org/dtds/struts-2.3.dtd">
?
<struts>
?
??? <constant name="struts.devMode" value="true" />
??? <constant name="struts.i18n.encoding" value="GBK" />
??? <package name="test" extends="struts-default" namespace="/">
??????? <action name="test" class="com.test.struts2.action.TestAction">
??????????? <result type="freemarker">/templates/result.ftl</result>
??????? </action>
??? </package>
?
</struts>
6.web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
??? xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
??? xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
??? id="WebApp_ID" version="2.5">
?
??? <filter>
?????? <filter-name>struts2</filter-name>
??? ??? <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
??? </filter>
?
??? <filter-mapping>
?????? <filter-name>struts2</filter-name>
?????? <url-pattern>/*</url-pattern>
??? </filter-mapping>
?
??? <servlet>
?????? <servlet-name>freemarker</servlet-name>
?????? <servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class>
?????? <!--下面配置freemarker的ftl文件位置 -->
?????? <init-param>
?????????? <param-name>TemplatePath</param-name>
?????????? <param-value>/templates</param-value>
?????? </init-param>
?????? <!-- 是否和服务器(tommcat)一起启动。0为不。1为是-->
?????? <load-on-startup>1</load-on-startup>
??? </servlet>
?
??? <servlet-mapping>
?????? <servlet-name>freemarker</servlet-name>
?????? <url-pattern>*.ftl</url-pattern>
??? </servlet-mapping>
?
</web-app>
?