我用ftl模板取后台数据,取不出来,打开浏览器运行 http://localhost:9090/f01 就跟我下载一个f01的不知道是什么文件,还有时就是原样输出
java代码:
package com.freemarker.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/f01")
public class FreeMarker01 extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置数据(给模板设置数据)
req.setAttribute("msg","Hello FreeMarker!!!");
//请求转发跳转到指定的模板页面: template/f01.ftl
req.getRequestDispatcher("template/f01.ftl").forward(req,resp);
}
}
web.xml:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>freemarker</servlet-name>
<servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class>
<init-param>
<!--模板路径-->
<param-name>Templatepath</param-name>
<!--默认在webapp目录下查找对应的模板文件-->
<param-value>/</param-value>
</init-param>
<init-param>
<!--模板默认的编码UTF-8-->
<param-name>default_encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</servlet>
<!--处理所有以.ftl结尾的文件,ftl是freemarker默认的文件后缀-->
<servlet-mapping>
<servlet-name>freemarker</servlet-name>
<url-pattern>.ftl</url-pattern>
</servlet-mapping>
</web-app>
f01.ftl 就只有一句输出
${msg}