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已经成功完成了。
分享到:
相关推荐
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,很好的资源
在"Struts2整合FreeMarker开发HelloWorld"的项目中,我们将学习如何在Struts2框架下使用FreeMarker模板技术来创建一个简单的 HelloWorld 示例。首先,我们需要确保我们的开发环境中已经安装了Apache Struts2和...
在这个“FreeMarker入门之一:say hello world”中,我们将探讨如何使用FreeMarker来创建一个简单的“Hello, World!”程序,了解其基本语法和工作原理。 1. **FreeMarker简介** FreeMarker是一个开源项目,由...
在我们的例子中,`HelloWorld.jsp`可能只是一个简单的JSP页面,显示"Hello World": ```jsp ;charset=UTF-8" language="java" %> <title>Hello World <h1><s:property value="message"/> ``` 这里,`...
**Spring MVC HelloWorld 实例详解** 在Java Web开发中,Spring MVC是一个非常重要的框架,它用于构建灵活、可扩展的Web应用程序。本实例将带你深入理解Spring MVC 4.0的基本用法,通过一个简单的"Hello World"应用...
本篇文章将带你通过一个简单的 "HelloWorld" 示例,深入了解 Spring MVC 的基本工作原理和配置过程。 首先,我们来了解一下 Spring MVC 的核心概念: 1. **DispatcherServlet**:这是 Spring MVC 的前端控制器,...
这个"HelloWorld"实例是学习和理解Struts2基本工作原理和配置的绝佳起点。下面将详细阐述Struts2.1.6的特性、HelloWorld实例的组成部分以及如何实现它。 首先,Struts2框架提供了一种结构化的开发方式,使得开发者...
**SpringBoot之HelloWorld的Maven项目(Eclipse)** SpringBoot是由Pivotal团队开发的一个框架,旨在简化Spring应用程序的初始搭建以及开发过程。它集成了大量的常用库,如数据访问、安全、Web等,使得开发者可以...
在这个"HelloWorld"实例中,我们将深入探讨如何使用Spring 5.0 MVC和Maven构建一个基本的应用程序。 首先,让我们了解Spring MVC的核心组件: 1. **DispatcherServlet**:它是Spring MVC的前端控制器,负责接收...
"helloworld------springMVC"项目是一个简单的示例,旨在引导初学者入门SpringMVC的基本概念和配置。让我们深入探讨SpringMVC的核心组件、工作流程以及如何在实际项目中设置和运行这个Hello World程序。 1. **核心...
**Spring MVC HelloWorld 实例详解** 在Java Web开发中,Spring MVC框架被广泛使用,它为构建基于模型-视图-控制器(MVC)模式的Web应用程序提供了强大的支持。本篇文章将详细讲解如何在MyEclipse2013环境中创建一...
在“Springmvc_1_helloworld”这个项目中,我们可以找到上述所有配置和代码的示例。通过运行这个项目,我们可以验证SpringMVC如何处理一个简单的“Hello World”请求,并了解其背后的机制。这只是一个起点,...
此外,SpringMVC支持多种视图技术,如JSP、FreeMarker、Thymeleaf等,这使得视图层的实现非常灵活。 相比之下,Struts2是基于Action的MVC框架,源自最初的Struts1,但经过全面升级,引入了拦截器(Interceptor)的...
测试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就会遇到这个问题。项目下载...
7. **运行并测试**:启动Tomcat服务器,通过浏览器访问`http://localhost:8080/HelloWorld/hello`(假设你的请求映射为"/hello"),如果一切配置正确,你应该能看到“Hello World”显示在页面上。 通过这个简单的...
在本例中,我们关注的是"struts2 HelloWorld"项目,这通常是一个入门教程,旨在帮助新手理解Struts2框架的基本用法。 首先,我们需要了解Struts2的lib版本v2.0.6。这个版本包含了框架运行所需的所有库文件,包括...
这个“Struts2--HelloWorld”示例将引导我们深入理解Struts2的基础知识和核心概念。 在Java web开发中,Struts2框架提供了一个灵活的请求处理机制,它简化了业务逻辑与表现层的集成。通过使用Action类,我们可以...
可以使用模板引擎(freemarker、thymeleaf); application.properties:Spring Boot应用的配置文件;可以修改一些默认设置; ———————————————— 版权声明:本文为CSDN博主「倦眼问酒书j」的原创...
在本文中,我们将深入探讨如何使用Spring 3.0 MVC框架通过注解方式实现一个简单的“Hello, World!”输出。Spring MVC是Spring框架的一部分,它为构建基于模型-视图-控制器(MVC)架构的Web应用程序提供了一个强大的...