整理一下当年的学习笔记之:初步学习freemarker ,先做一个简单的HelloWord程序!
来源:互联网 发布:算法设计与分析pdf下载 编辑:程序博客网 时间:2024/05/16 06:56
新建一个WEB工程,下载(我使用的是freemarker-2.3.20)freemarker并导入freemarker.jar,在WEB-INF下新建文件夹templates用于存放模版文件
在templates下新建test.ftl,这是示例模版文件。内容就是HTML内容,里面带有一个标记符,用于将来进行变量替换,内容如下:
- <html>
- <head>
- <title>freemarker测试</title>
- </head>
- <body>
- <h1>${message},${name}</h1>
- </body>
- </html>
新建一个Servlet,用于请求设置变量,并处理模版的输出:
- package com.test.servlet;
- import java.io.IOException;
- import java.io.Writer;
- 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 HelloFreeMarkerServlet extends HttpServlet {
- // 负责管理FreeMarker模板的Configuration实例
- private Configuration cfg = null;
- public void init() throws ServletException {
- // 创建一个FreeMarker实例
- cfg = new Configuration();
- // 指定FreeMarker模板文件的位置
- cfg.setServletContextForTemplateLoading(getServletContext(),
- "/WEB-INF/templates");
- }
- @SuppressWarnings("unchecked")
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- // 建立数据模型
- Map root = new HashMap();
- root.put("message", "hello world");
- root.put("name", "java小强");
- // 获取模板文件
- Template t = cfg.getTemplate("test.ftl");
- // 使用模板文件的Charset作为本页面的charset
- // 使用text/html MIME-type
- response.setContentType("text/html; charset=" + t.getEncoding());
- Writer out = response.getWriter();
- // 合并数据模型和模板,并将结果输出到out中
- try {
- t.process(root, out); // 往模板里写数据
- } catch (TemplateException e) {
- e.printStackTrace();
- }
- }
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- doPost(request, response);
- }
- public void destroy() {
- super.destroy();
- }
- }
注意要在你的web.xml中配置该Servlet:
- <?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>hello</servlet-name>
- <servlet-class>
- com.test.servlet.HelloFreeMarkerServlet
- </servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>hello</servlet-name>
- <url-pattern>/hello</url-pattern>
- </servlet-mapping>
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- </web-app>
为了方便测试,访问工程直接跳转到Servlet,对主页index.jsp做一个简单修改:
- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()
- +":"+request.getServerPort()+path+"/";
- %>
- <html>
- <body>
- <%
- String mypath = "hello";
- response.sendRedirect(basePath + mypath);
- %>
- </body>
- </html>
部署工程到Tomcat,启动并访问http://localhost:8080/f ,这里我建立的工程名称就是 f 。
0 0
- 整理一下当年的学习笔记之:初步学习freemarker ,先做一个简单的HelloWord程序!
- 整理一下当年的学习笔记之:Jquery
- 整理一下当年的学习笔记之:struts2
- 整理一下当年的学习笔记之:poi导入导出
- 整理一下当年的学习笔记之:JFreeChart初体验
- 整理一下当年的学习笔记之:SpringMVC的各种参数绑定方式
- 整理一下当年的学习笔记之:ajax请求json和普通项
- 整理一下当年的学习笔记之:多个请求使用同一个Servlet
- FreeMarker学习笔记(一) 初步认识Freemarker的模板
- FreeMarker学习笔记(一) 初步认识Freemarker的模板
- ROS的初步学习(六)---写一个简单程序
- freemarker入门笔记之一:永恒的helloword
- [机器学习] 看了一下KNN的介绍,那么动手做一个简单的例子
- Bootstrap学习笔记—做一个简单的缩略图
- 把课程学习的知识分享一下 做一个相应的笔记给自己
- JSP学习(当年做的知识记录)
- 【FreeMarker】【程序开发】一个简单的示例
- 初步学习opencv的几个程序示例 学习笔记
- 用内容生成实现对话框气泡
- MyBatis 简介
- java网络编程笔记 sleep
- oracle 字符转表函数
- Linux下openssl的第1个程序
- 整理一下当年的学习笔记之:初步学习freemarker ,先做一个简单的HelloWord程序!
- openssl堆栈
- 从招式与内功谈起——设计模式概述(二)
- Mysql 连接JOIN的使用
- Java 序列化
- 富文本属性 -- NSMutableParagraphStyle与NSParagraphStyle的使用
- 关于在activity中使用popuwindow关闭后引起崩溃的解决方法。
- 区别pointer和references
- openssl堆栈