转自http://www.javabc.com/Html/javakyjs/javaky_fv/2007-1/412885210.html
四.Freemarker与Struts结合
1.输出文件换成以ftl格式的文件
E.G.
<action validate="true" type="example.BookAction" scope="request" path="/bookAction" parameter="method" name="bookActionForm"></action>
<forward path="/index.ftl" name="list"></forward>
2.使用struts,jstl等标签
a.导入à<#global html=JspTaglibs["/WEB-INF/tags/struts-html.tld"]>
或<#assign html=JspTaglibs["/WEB-INF/struts-html.tld"]>
<#assign bean=JspTaglibs["/WEB-INF/struts-bean.tld"]>
<#assign logic=JspTaglibs["/WEB-INF/struts-logic.tld"]>
b.使用à<@bean.page id="request" property="request"/>,
<@html.text property="vo.newsTitle" styleClass="input1"/>
五.用Freemarker生成Html页面
例子:MakeFileManager.java
package example;
import freemarker.template.Configuration;
import java.text.SimpleDateFormat;
import java.io.File;
import freemarker.template.DefaultObjectWrapper;
import java.util.Map;
import java.util.HashMap;
import java.io.Writer;
import java.io.OutputStreamWriter;
import java.io.FileOutputStream;
import freemarker.template.TemplateException;
import java.io.IOException;
import freemarker.template.Template;
public class MakeFileManager {
public String make(Book book, BookFtl bookFtl) {
Configuration cfg = new Configuration();//配制
String realPath = bookFtl.getRealPath();
String templatePath = realPath + "/WEB-INF/templates/book";
String cDateStr = "book/" +
new SimpleDateFormat("yyyyMMdd").format(new java.util.
Date());
String filePostfix = ".html";
String path = realPath + "/" + cDateStr;
String fileTimeName = new SimpleDateFormat("yyyyMMddhhmmss").format(new
java.util.Date());
String returnFileName = cDateStr + "/" + fileTimeName + filePostfix;
String fileName = "";
File bookDir = new File(path);
if (bookDir.exists()) {
fileName = path + "/" + fileTimeName + filePostfix;
} else {
bookDir.mkdirs();
fileName = path + "/" + fileTimeName + filePostfix;
}
try {
//设置freemarker的参数
cfg.setNumberFormat("0.##########");//生成html文件时web.xml配制无效
//cfg.setEncoding();
cfg.setDirectoryForTemplateLoading(new File(templatePath));
cfg.setObjectWrapper(new DefaultObjectWrapper());
Template bookTemplate = cfg.getTemplate(bookFtl.getTemplateName());//模板对象
Map root = new HashMap();
root.put("book", book);
root.put("book2",book);
Writer out = new OutputStreamWriter(new FileOutputStream(fileName));
try {
bookTemplate.process(root, out);
} catch (TemplateException e) {
e.printStackTrace();
}
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
return returnFileName;
}
}
分享到:
相关推荐
Freemarker是一个强大的模板引擎,常用于Web应用中的视图层渲染,特别是在Java环境中与Spring框架结合使用广泛。本篇文章将深入探讨Freemarker的基本概念、语法特性、使用场景以及最佳实践,帮助读者全面理解并掌握...
最后,基础语法的文本文件《Freemarker基础语法.txt》和《Freemarker学习归纳 .txt》是对Freemarker核心语法的精炼总结,方便初学者快速入门。这些文件可能包括变量、表达式、控制流、注释等基本元素,是学习...
这份"springboot学习思维笔记"很可能是对SpringBoot核心概念、特性、以及如何进行有效学习的一系列整理和归纳,通常包括思维导图(xmind)形式的概览和详细的文本说明。 1. **SpringBoot基础知识** - **自动配置**...
我曾熟悉并应用SSH框架(Struts、Spring、Hibernate),在表现层使用FreeMarker和JSP。在实际项目中,我运用SpringMVC框架开发了针对XXX行业的管理系统。尽管如此,我也意识到自身在某些领域的不足,例如未使用过...
本文通过Python编程语言,利用爬虫技术定向抓取相关网站内容,并进行文本挖掘、关键信息抽取、分类与归纳,以实现统计分析。此外,还使用Python进行关联分析,设计并编写了相应的电商数据分析及推荐系统。该系统具有...
根据提供的文档信息,我们可以归纳出以下几个关键的知识点: ### 一、Java在大学宿舍管理系统中的应用 #### 1. Java技术概述 Java是一种广泛使用的面向对象编程语言,它以其跨平台性和安全性而闻名。Java技术在...
实训总结不仅归纳了整个项目的学习成果,还反思了不足之处,为后续的改进提供了方向。 ### 项目部署简单说明 项目部署说明提供了系统上线前的准备步骤,包括环境配置、安装指南和操作流程,确保系统能顺利运行于...
根据提供的文件信息,我们可以归纳出一系列与Spring Boot相关的知识点,主要围绕邮件功能展开的可能性较低,因为文件内容更多地涉及Spring Boot的基础概念、Web开发、数据访问等主题。下面将基于这些信息来提炼出...
下面将根据标题、描述、标签及部分可见内容来归纳总结几个关键的知识点。 ### Spring框架概述 Spring框架最初由Rod Johnson创建,旨在简化企业级Java应用程序的开发。Spring框架的核心特性包括依赖注入...
根据提供的文件信息,我们可以归纳出以下关键知识点,主要聚焦于Struts2框架的学习与应用: ### Struts2框架概述 **Struts2** 是一个基于Java的开源Web应用程序框架,它继承了Struts1的优点,并引入了许多新特性,...