`

FreeMarker(HelloWorld)

阅读更多

FreeMarker是开源的模板框架。

对于它的介绍网上已经很多了。详情可参考
主页:http://www.freemarker.org/

  现在我们就开始我们的FreeMarker版的Hello World之旅吧。

1.去这里 下载 最新的FreeMarker.我下载的是 Download freemarker-2.3.13

2.解压你下载的freemarker-2.3.13。

3.新建一web工程。我是MyEclipse下做的。把freemarker-2.3.13/lib目录下的
所有jar文件都复制到你建的web工程的lib目录下。

4.在WEB-INF目录下建一文件夹templates,然后在这个文件夹里面新建一个模板文件test.ftl

<html>
<head>
  <title>你的自定义模板</title>
</head>
    <body>
      ${message}
      :<font color=red>${username}</font>
    </body>
</html>
 
5.建一个HelloServlet:

package com;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;

@SuppressWarnings("serial")
public class HelloServlet extends HttpServlet
{
    private Configuration cfg = null;

    @Override
    public void init() throws ServletException
    {
        // FreeMarker程序入口点
        cfg = new Configuration();
        // 初始化Servlet上下文(第二参数为ServletContext的相对路径,null代表当前网站根路径,相对路径)
        cfg.setServletContextForTemplateLoading(this.getServletContext(), null);
        /***********************************************************************
         * *cfg.setServletContextForTemplateLoading(this.getServletContext(),
         * "WEB-INF"); 如果设置成WEB-INF相应的获模板时需要改成Template t =
         * cfg.getTemplate("/templates/test.ftl");
         **********************************************************************/
    }

    @SuppressWarnings("unchecked")
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException
    {
        // 模板文件会根据key,读取value
        Map root = new HashMap();
        root.put("message", "您好!");
        root.put("username", "编程爱好者");
        Template t = cfg.getTemplate("WEB-INF/templates/test.ftl");
        resp.setCharacterEncoding("utf-8");
        PrintWriter out = resp.getWriter();
        try
        {
            t.process(root, out);
        } catch (TemplateException e)
        {
            e.printStackTrace();
        }
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException
    {
        this.doPost(req, resp);
    }

}
 

6.web.xml中的相应配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="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>testServlet</servlet-name>
        <servlet-class>com.HelloServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>testServlet</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>
 

7.启动浏览器访问:http://localhost:8888/freemarker/hello
您会看到:
您好! :编程爱好者

好了,你的第一个Freemarker版的HelloWorld已经成功完成了。
分享到:
评论

相关推荐

    第一个FreeMarker HelloWorld程序

    public class HelloWorld { public static void main(String[] args) throws IOException, TemplateException { Configuration cfg = new Configuration(Configuration.VERSION_2_3_30); cfg....

    Springboot初探---FreeMarker 之 HelloWorld

    Springboot初探---FreeMarker 之 HelloWorld,很好的资源

    struts2整合FreeMarker开发HelloWorld

    在"Struts2整合FreeMarker开发HelloWorld"的项目中,我们将学习如何在Struts2框架下使用FreeMarker模板技术来创建一个简单的 HelloWorld 示例。首先,我们需要确保我们的开发环境中已经安装了Apache Struts2和...

    FreeMarker入门之一:say hello world

    在这个“FreeMarker入门之一:say hello world”中,我们将探讨如何使用FreeMarker来创建一个简单的“Hello, World!”程序,了解其基本语法和工作原理。 1. **FreeMarker简介** FreeMarker是一个开源项目,由...

    基于struts2的hello world输出

    在我们的例子中,`HelloWorld.jsp`可能只是一个简单的JSP页面,显示"Hello World": ```jsp ;charset=UTF-8" language="java" %&gt; &lt;title&gt;Hello World &lt;h1&gt;&lt;s:property value="message"/&gt; ``` 这里,`...

    Springmvc的helloWorld实例

    **Spring MVC HelloWorld 实例详解** 在Java Web开发中,Spring MVC是一个非常重要的框架,它用于构建灵活、可扩展的Web应用程序。本实例将带你深入理解Spring MVC 4.0的基本用法,通过一个简单的"Hello World"应用...

    Spring MVC HelloWorld入门例子

    本篇文章将带你通过一个简单的 "HelloWorld" 示例,深入了解 Spring MVC 的基本工作原理和配置过程。 首先,我们来了解一下 Spring MVC 的核心概念: 1. **DispatcherServlet**:这是 Spring MVC 的前端控制器,...

    Struts2.1.6 HelloWorld 实例

    这个"HelloWorld"实例是学习和理解Struts2基本工作原理和配置的绝佳起点。下面将详细阐述Struts2.1.6的特性、HelloWorld实例的组成部分以及如何实现它。 首先,Struts2框架提供了一种结构化的开发方式,使得开发者...

    SpringBoot之HelloWorld的Maven项目(Eclipse)

    **SpringBoot之HelloWorld的Maven项目(Eclipse)** SpringBoot是由Pivotal团队开发的一个框架,旨在简化Spring应用程序的初始搭建以及开发过程。它集成了大量的常用库,如数据访问、安全、Web等,使得开发者可以...

    spring5.0_mvc_maven项目_HelloWorld实例

    在这个"HelloWorld"实例中,我们将深入探讨如何使用Spring 5.0 MVC和Maven构建一个基本的应用程序。 首先,让我们了解Spring MVC的核心组件: 1. **DispatcherServlet**:它是Spring MVC的前端控制器,负责接收...

    helloworld------springMVC

    "helloworld------springMVC"项目是一个简单的示例,旨在引导初学者入门SpringMVC的基本概念和配置。让我们深入探讨SpringMVC的核心组件、工作流程以及如何在实际项目中设置和运行这个Hello World程序。 1. **核心...

    spring MVC Helloworld

    **Spring MVC HelloWorld 实例详解** 在Java Web开发中,Spring MVC框架被广泛使用,它为构建基于模型-视图-控制器(MVC)模式的Web应用程序提供了强大的支持。本篇文章将详细讲解如何在MyEclipse2013环境中创建一...

    SpringMVC跑Hello World

    在“Springmvc_1_helloworld”这个项目中,我们可以找到上述所有配置和代码的示例。通过运行这个项目,我们可以验证SpringMVC如何处理一个简单的“Hello World”请求,并了解其背后的机制。这只是一个起点,...

    helloworld.rar

    此外,SpringMVC支持多种视图技术,如JSP、FreeMarker、Thymeleaf等,这使得视图层的实现非常灵活。 相比之下,Struts2是基于Action的MVC框架,源自最初的Struts1,但经过全面升级,引入了拦截器(Interceptor)的...

    HelloFreeMarker

    测试list标签时,项目总是报如下错误:freemarker.template.TemplateModelException: Don't know how to present an object of this type to a template: com.evan.Person 如果jar为2.2.8就会遇到这个问题。项目下载...

    SpringMVC HelloWorld程序

    7. **运行并测试**:启动Tomcat服务器,通过浏览器访问`http://localhost:8080/HelloWorld/hello`(假设你的请求映射为"/hello"),如果一切配置正确,你应该能看到“Hello World”显示在页面上。 通过这个简单的...

    struts2 HelloWorld

    在本例中,我们关注的是"struts2 HelloWorld"项目,这通常是一个入门教程,旨在帮助新手理解Struts2框架的基本用法。 首先,我们需要了解Struts2的lib版本v2.0.6。这个版本包含了框架运行所需的所有库文件,包括...

    Struts2--HelloWorld

    这个“Struts2--HelloWorld”示例将引导我们深入理解Struts2的基础知识和核心概念。 在Java web开发中,Struts2框架提供了一个灵活的请求处理机制,它简化了业务逻辑与表现层的集成。通过使用Action类,我们可以...

    SpringBootDay01-HelloWorld-1.0-SNAPSHOT.jar

    可以使用模板引擎(freemarker、thymeleaf); application.properties:Spring Boot应用的配置文件;可以修改一些默认设置; ———————————————— 版权声明:本文为CSDN博主「倦眼问酒书j」的原创...

    spring3.0 mvc 注解实现helloworld输出

    在本文中,我们将深入探讨如何使用Spring 3.0 MVC框架通过注解方式实现一个简单的“Hello, World!”输出。Spring MVC是Spring框架的一部分,它为构建基于模型-视图-控制器(MVC)架构的Web应用程序提供了一个强大的...

Global site tag (gtag.js) - Google Analytics