本帖最后由 java_yinxuan 于 2014-07-10 17:25:07 编辑

解决方案 »

  1.   

    tpl 模板应该放在/WEB-INF/classes目录下,而不是lib目录下
      

  2.   

    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"
             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">
        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>    <!-- Freeer in Servlet -->
        <servlet>
            <servlet-name>freeer</servlet-name>
            <servlet-class>freeer.ext.servlet.FreeerServlet</servlet-class>
            <init-param>
                <param-name>TemplatePath</param-name>
                <param-value>/</param-value>
            </init-param>
            <init-param>
                <param-name>NoCache</param-name>
                <param-value>true</param-value>
            </init-param>
            <init-param>
                <param-name>ContentType</param-name>
                <param-value>text/html;charset=UTF-8</param-value>
            </init-param>
            <init-param>
                <param-name>template_update_delay</param-name>
                <param-value>0</param-value>
            </init-param>
            <init-param>
                <param-name>default_encoding</param-name>
                <param-value>UTF-8</param-value>
            </init-param>
            <init-param>
                <param-name>number_format</param-name>
                <param-value>0.##########</param-value>
            </init-param>
        </servlet>
        <servlet-mapping>
            <servlet-name>freeer</servlet-name>
            <url-pattern>*.htm</url-pattern>
        </servlet-mapping>    <servlet>
            <servlet-name>test</servlet-name>
            <servlet-class>servlet.MyServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>test</servlet-name>
            <url-pattern>/test</url-pattern>
        </servlet-mapping>
    </web-app>
      

  3.   

    使用FreeMarker的Servlet
    import bean.User;import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;public class MyServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            User user = new User("HuangBiao", "password");
            req.setAttribute("user", user);        req.getRequestDispatcher("/WEB-INF/view/freeer/fm.htm").forward(req, resp); // 这里可以看到fm.htm放的路径,这个是模板文件
        }
    }
      

  4.   

    // 设置模版路径
    freeer.template.Configuration.setDirectoryForTemplateLoading(new File(ftlpath));
      

  5.   

    我的代码中这样设置的
    cfg.setServletContextForTemplateLoading(getServletContext(),
    "WEB-INF/templates");
    路径不应该这样写吗?
      

  6.   

    我的代码中这样设置的
    cfg.setServletContextForTemplateLoading(getServletContext(),
    "WEB-INF/templates");
      

  7.   

    这样配置不行吗?
    cfg.setServletContextForTemplateLoading(getServletContext(),
    "WEB-INF/templates");
      

  8.   


    配置<init-param></init-param>是必须的吗?
    我刚接触FreeMarker,没有整合任何框架,只单纯用FreeMarker