`
woshicaiqiang
  • 浏览: 5601 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

struts2整合freemarker生成静态页面

阅读更多

1.web.xml加入如下配置 <servlet>
     <servlet-name>JspZSupportServlet</servlet-name>
     <servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
     <load-on-startup>1</load-on-startup>
    </servlet>

为的是能在ftl文件中使用struts2的标签或者jsp相关的东西

2.新建一个工具类 StaticFreemarker.java-------------------------

public class StaticFreemarker {

 public static void createHTML(ServletContext context,Map<String,Object>data,String templatePath,String targetHtmlPath){
  Configuration cfg = new Configuration();
  cfg.setServletContextForTemplateLoading(context, "/WEB-INF/");
  cfg.setEncoding(Locale.getDefault(), "GB2312");
  Writer out = null;
  try {
   Template t = cfg.getTemplate(templatePath, "GB2312");
   t.setEncoding("GB2312");
   
   //静态页面路径设置
   String htmlPath = context.getRealPath("/html")+"/"+targetHtmlPath;
   File htmlFile = new File(htmlPath);
   out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(htmlFile),"UTF-8"));
   t.process(data, out);
   
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } finally{
   if(out != null){
    try {
     out.flush();
     out.close();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
   
  }
  
 }
}

3,创建相应的ftl文件。

4,创建相应的action,一部分代码是

public String createHTML()throws Exception{
  Map<String,Object> data = new HashMap<String,Object>();
  data.put("name", "张三");
  data.put("address", "北京海淀");
  data.put("name1", "李四");
  data.put("address1", "上海");
  
  List<Person> persons = new ArrayList<Person>();
  for(int i = 1; i <= 30; i++){
   Person p = new Person();
   p.setId(i);
   p.setName("张三" + i);     //data的数据就是上面的ftl模板文件所要用到的数据
   p.setAge("23");
   p.setSex("男");
   persons.add(p);
  }
  data.put("persons", persons);
  StaticFreemarker.createHTML(request.getSession().getServletContext(), data, "success.ftl", "success.html");
  return SUCCESS;
 }

 

分享到:
评论

相关推荐

    Struts2整合Freemarker生成静态页面

    以上就是Struts2整合Freemarker生成静态页面所涉及的主要知识点。通过熟练掌握这些,开发者可以有效地构建动态、高性能的Web应用。在提供的链接中,可能有更具体的示例和教程,帮助你深入理解和实践这一技术。

    FreeMarker与struts2整合生成静态页面

    FreeMarker与Struts2的...通过这个案例,开发者可以学习到如何将FreeMarker与Struts2结合起来,实现动态生成静态页面,以及如何使用c3p0和dbUtils进行数据库操作。这对于理解Web应用的架构和提高开发效率具有重要意义。

    struts2+freemarker 框架

    Struts2整合FreeMarker实例框架初学例子....利用Struts2生成静态页面其实很灵活,很强大,尤其是利用Struts2对Freemarker较好的支持,充分利用Freemarker的模板功能来生成静态页面。 比较简单.大家见笑了.

    spring+hibernate+struts2+freemarker SSH2 新闻发布系统

    在新闻发布系统中,Freemarker被用作视图层技术,与Struts2结合,根据Action返回的数据动态生成静态页面。这样可以将业务逻辑与表现逻辑分离,使得代码更加清晰。 5. **用户认证与权限管理** 系统中预设了一个管理...

    struts1.2+freeMarker

    - 使用FreeMarker生成静态网页,可以预先计算好所有数据并缓存,从而避免每次请求都与数据库交互,提高页面加载速度。 - 静态化技术可以应用于不经常改变但访问频繁的页面,例如产品详情页或文章列表页。这可以...

    freemarker+struts2+spring完美整合!

    部署到tomcat中, 访问/freemarker/build_index.action 点击首页生成,当显示生成成功过后 然后访问 ...已经完美将struts2+freemarker+spring整合~ 希望对你们有所帮助。 经测试:tomcat5.5 无法正常运行

    struts+freemarker 源码例

    在Struts与FreeMarker的整合中,通常需要在Struts的配置文件(struts-config.xml或struts2的struts.xml)中定义Action和对应的Result,指定使用FreeMarker来渲染结果。例如: ```xml &lt;result type="freemarker"&gt;/...

    struts2+freemarker+log4j

    Struts2、Freemarker和Log4j是Java Web开发中的三个重要组件,它们各自扮演着不同的角色。这里,我们来深入探讨这三个技术的核心概念及其整合应用。 **Struts2** 是一个开源的MVC(Model-View-Controller)框架,...

    Struts+Spring+Hibernate+Freemarker新闻系统

    这个新闻系统就是利用这四个技术进行整合构建的,旨在提供一个高效、灵活且易于维护的后台管理系统,同时具备生成静态页面的能力,以优化网站性能。 1. **Struts**: Struts是一个基于MVC设计模式的Java Web框架,...

    Struts2+Spring2.5+hibernate3.2+freemarker

    开发者可以在模板中使用变量和控制结构,FreeMarker会结合后台提供的数据模型,生成最终的静态页面。 在"Struts2+Spring2.5+Hibernate3.2+Freemarker"的集成中,Spring作为整体的容器,负责管理所有组件的生命周期...

    freemaker+struts2

    4. **整合 FreeMarker**:在 Struts2 中使用 FreeMarker 作为视图层,需要添加相应的 JAR 包,并在 `web.xml` 中配置 Struts2 的 FilterDispatcher。在模板中可以直接使用 Struts2 的标签库,通过 `&lt;@...&gt;` 语法调用...

    jFreeChart资源 及 相关配置 及 帮助文档 及 与struts2整合案例

    整合过程包括在Struts2 Action中生成图表,然后通过JSP或FreeMarker模板将其渲染到页面上。同时,需要配置Struts2的Action结果类型,确保能够正确返回图表的图像流。 5. **案例分析** 包含的整合案例可能展示了...

    基于struts2 spring hibernate整合

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责,并通过整合可以构建出高效、模块化的应用程序。在这个“基于Struts2 Spring Hibernate整合”的项目中,我们看到开发者使用了Maven...

    jfreechart整合struts2的压缩包

    通过整合JFreeChart,开发者可以在Struts2的Action中处理业务逻辑,然后利用JFreeChart生成相应的图表,最后通过Struts2的Result返回到前端页面展示。 整合JFreechart和Struts2的过程主要包括以下几个步骤: 1. **...

    Struts2属性文件详解

    该属性指定了Struts 2使用的FreeMarker管理器,默认值为`org.apache.struts2.views.freemarker.FreemarkerManager`。 #### struts.freemarker.wrapper.altMap 此属性只支持`true`和`false`两个属性值,默认值为`...

    FreeMarker应用实例和PPT

    - **Struts2整合步骤**:展示如何在Struts2项目中添加FreeMarker支持,配置文件设置,Action和模板的关联。 - **模板示例**:展示一个完整的FreeMarker模板,包括变量、表达式、指令的使用。 - **最佳实践**:...

    Spring MVC + Tiles + FreeMarker 的整合

    开发者可以在FreeMarker模板中定义变量和逻辑,然后在服务器端填充这些变量,最后由FreeMarker生成最终的HTML响应。 **整合过程** 1. **设置项目结构**:在Web应用中,通常会将Spring MVC相关的配置文件(如`...

    struts2+jfreechart

    2. **插件体系**:提供了丰富的插件,如Tiles、Freemarker等,方便开发者快速构建页面。 3. **异常处理**:通过全局异常映射,可以统一处理异常,提高代码可读性。 4. **拦截器**:允许开发者定义自己的拦截器,实现...

    freemarker案例

    Freemarker是一个强大的模板引擎,常用于Web应用中的视图层开发,与Struts2等MVC框架结合使用,能够实现动态页面渲染。本案例主要探讨如何在Struts2框架中整合并应用FreeMarker模板技术。 1. **Freemarker简介** ...

    freemarker+fckeditor+struts+hibernate

    开发者定义模板,其中包含静态文本和变量,FreeMarker负责将变量替换为实际值,生成最终的动态页面。在Struts框架中,FreeMarker通常用于视图层,提供灵活且高效的页面渲染。 **FCKeditor** FCKeditor是历史上广泛...

Global site tag (gtag.js) - Google Analytics