FreeMarker与SSH项目整合流程
FreeMarker与SSH项目整合流程
学习了SSH之后,一般为了减少数据库的压力,会使用FreeMarker来生成静态HTML页面。下面简单说一下FreeMarker与SSH项目的整合全过程~
前提:已构建好SSH项目结构。
Step 1. 从网上下载freeMarker.jar,然后复制到项目中的/WEB-INF/lib目录下。

Step 2. 在web.xml加入以下配置信息:
<servlet>
<servlet-name>freemarker</servlet-name>
<servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class>
<init-param>
<param-name>TemplatePath</param-name>
<param-value>/WEB-INF/</param-value><!-- 此处表示ftl文件的存放路径,这里表示ftl文件放在了/WEB-INF/目录下 -->
</init-param>
<init-param>
<param-name>NoCache</param-name>
<param-value>true</param-value>
</init-param>
<!-- 强制使用 UTF-8作为输出编码格式! -->
<init-param>
<param-name>ContentType</param-name>
<param-value>text/html; charset=UTF-8</param-value>
</init-param>
<!-- FreeMarker 设置: -->
<!-- 在开发时设置为0,实际使用的时候需设置为较大的值 -->
<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>
<!-- datetime-format指定DateTime类型数据显示的格式 -->
<init-param>
<param-name>datetime_format</param-name>
<param-value>yyyy-MM-dd HH:mm:ss</param-value>
</init-param>
<!-- date-format指定Date类型数据显示的格式 -->
<init-param>
<param-name>date_format</param-name>
<param-value>yyyy-MM-dd</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>freemarker</servlet-name>
<url-pattern>*.ftl</url-pattern>
</servlet-mapping>
Step 3. 在Step2已经说了,模板文件.ftl都会放在/WEB-INF/目录下,我们需要将.ftl文件创建在自己所设置的路径下,比如本人是test.ftl
Step 4. 编辑test.ftl,本人给出的示例代码如下:
test.ftl :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<TITLE></TITLE>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
</HEAD>
<BODY>
<H1>${firstTest}</H1>
</BODY>
</HTML>
Step 5. 创建一个TestAction.java文件,作为控制层,内容如下:
注意:此处使用注解@Controller,需要在spring的xml文件中加入注解扫描!
如:<context:component-scan base-package="com.test.action"></context:component-scan>
TestAction.java:
@Controller
public class TestAction extends ActionSupport{
private static final long serialVersionUID = -3771504149261841628L;
public String firstTest;
public String getFirstTest() {
return firstTest;
}
public void setFirstTest(String firstTest) {
this.firstTest = firstTest;
}
@Override
public String execute() throws Exception {
firstTest = "hello , this is my first test!";
return SUCCESS;
}
}
Step 6. 在struts.xml文件中加入以下配置信息(注意result的type值为freemarker,后面的路径文件类型是.ftl):

Step 7. 在tomcat运行,在浏览器地址栏输入:
http://localhost:8080/crm-freemaker-ssh/test.action,运行效果如下:

可以看到在TestAction.java文件中为firstTest变量赋的值成功显示在页面~说明配置成功啦~
注:关于FreeMarker的详细介绍,请参见文档http://freemarker.foofun.cn/index.html
FreeMarker与SSH项目整合流程的更多相关文章
- SSH项目整合基本步骤
SSH项目整合基本步骤 一.项目简介 该项目是由Spring4.Struts2 以及 Hibernate4 整合搭建的 web 项目,把Action分开编写,便于查看,使用JSTL.EL标签. 二.项 ...
- SSH项目整合教学Eclipse搭建SSH(Struts2+Spring3+Hibernate3)
这篇博文的目的 尝试搭建一个完整的SSH框架项目. 给以后的自己,也给别人一个参考. 读博文前应该注意: 本文提纲:本文通过一个用户注册的实例讲解SSH的整合.创建Struts项目,整合Hiberna ...
- SSH 项目整合
SSH整合:spring + springmvc + hibernate 1.1 生成Maven项目:ar_ssh 1.2 添加jar包:pom.xml 与ssm相比,主要添加了spring与hibe ...
- SSH项目整合
其实框架的整合无非就是jar包和配置文件: struts2.spring.Hibernate这三个框架,分清楚什么作用就好配置了. jar包我们就不说了,这里看下配置文件吧: struts.xml: ...
- 使用eclipse整合ssh项目的例子--lljf(1)
最近向自己单独做一个基于ssh的项目,来预习和巩固自己的Java基础.找了一个实际生活中的定做衣服的例子来做一做,放到博客上给大家一起分享学习,后边会持续更新项目编写时候遇到的困难和使用的技术等. 1 ...
- J2EE进阶(六)SSH框架工作流程项目整合实例讲解
J2EE进阶(六)SSH框架工作流程项目整合实例讲解 请求流程 经过实际项目的进行,结合三大框架各自的运行机理可分析得出SSH整合框架的大致工作流程. 首先查看一下客户端的请求信息: 对于一个Web项 ...
- Maven项目整合SSH框架
---------------------siwuxie095 Maven 项目整合 SSH 框架 创建 ...
- 手动整合实现SSH项目开发01
内容简介:本文主要介绍SSH项目开发的配置以及简单登录功能的实现. 1. 新建一个Dynamic Web Project. 2.导入需要 的Jar包,此项目是Struts.Hibernate.Spri ...
- SSH项目搭建(二)
本章讲解SSH项目需要到哪些jar包,及各个jar包的作用 一.struts2 1.下载好struts2,struts2文件夹>>>>apps>>>>a ...
随机推荐
- 深度 Mybatis 3 源码分析(一)SqlSessionFactoryBuilder源码分析
MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java ...
- 编译安装Apache:出现错误configure: error: mod_deflate
在进行编译安装Apache时,出现如下错误 checking whether to enable mod_deflate... configure: error: mod_deflate has be ...
- SQL - 单引号和双引号的区别
原文转载至:SQL中的单引号和双引号有区别吗? 在标准 SQL 中,字符串使用的是单引号. 如果字符串本身也包括单引号,则使用两个单引号(注意,不是双引号,字符串中的双引号不需要另外转义). 但在其它 ...
- spring cloud feign 调用接口报错"No message available
There was an unexpected error (type=Internal Server Error, status=500). status 404 reading HelloServ ...
- 1-16使用try-catch捕捉异常
处理异常 可以使用try-catch-处理异常,例如之前的程序可以使用try-catch-处理 package com.monkey1024.exception; import java.io.Fil ...
- eclipse XML TAB键默认为四个空格
- RAID基础
磁盘类型 类型 IDE Integrated Drive Electronics SATA Srial ATA SCSI Small Computer System Interface FC Fibe ...
- Jquery 操作HTML5自定义属性data-*
HTML5自定义属性规范的写法<a data-roleid="12"></a>,也可以直接写<a roleid="12">& ...
- Ionic开发-如何在ion-content形成上下结构 上面固定下层可滚动
在一个系统设计中,一般有些需要固定位置,便利操作.现在我要做一个上下两层,需要固定上方,下方拉刷新数据. 页面: <ion-content scroll="false"> ...
- 【学习笔记】C++文件操作详解(ifstream、ofstream、fstream)
C++ 通过以下几个类支持文件的输入输出: ofstream: 写操作(输出)的文件类 (由ostream引申而来) ifstream: 读操作(输入)的文件类(由istream引申而来) fstre ...