方法一:(这个方法借鉴freemarker的docs文档Programmer's Guide 的quick start部分,详细请看相关的文档。
??????? 如果用spring,可以将它配置成bean,然后在其他地方使用。第五行的 templatePath 是模版文件的路径,比如/WEB-INF/template。
??????? action中的使用:HtmlTemplateGenerator.create("html/magazine/search.ftl", null, "/magazine", "search.html"); 其中“html/magazine/search.ftl”是在“/WEB-INF/template”目录下。这里还需要注意的是。模版文件(search.ftl)中如果还要引用其他文件,它的路径也是不需要添加总路径“/WEB-INF/template”。
方法二:继承webwork的FreemarkerResult,改写getWriter方法:
不知有无好的法子。
??????? 这里的路径和文件名通过webwork的session传入,不知有无其他好方法。
??????? 如果生成文件的同时还需要看到生成的页面,则要改写“doExecute”:
?
??????? 生成的文件格式不限于html,可以是其他文件格式,如js,text等。???????
??????? 比较这两种方法:
??????? 方法一:在需要生成分页文件时,比较合适。
??????? 方法二:可以象往常一样使用,一次需要生成多文件则不适合。
??????? 不知各位在做这些项目时,使用甚么好方法。
protected void postTemplateProcess(Template template, TemplateModel model)方法,在这个方法里面生成静态页面
第二种方法,覆盖FreemarkerResult的
protected void postTemplateProcess(Template template, TemplateModel model)方法,在这个方法里面生成静态页面
嗯,有时间看看。
我一个站点是按日期存静态文件目录,每天凌晨切换目录,所有文件的文件名是URL的32位MD5 Hash,对外链接不变,访问了才生成静态文件,一天有好几个G,切换目录后有另一个程序去删老的目录。
我想问一下这个 Map contents 这个data model在webwork的action中怎么得到?
是自己new一个Map 然后把数据put进去么?
想利用webwork构建好model只能用第二种方法么
我想问一下这个 Map contents 这个data model在webwork的action中怎么得到?
是自己new一个Map 然后把数据put进去么?
就是这样。
论坛上的关于生成静态页面的帖子,大都回答的简单,不能用于实际项目中。单独生成一个静态页面肯定没问题,模板+数据就可以。但是真是场景是:我一个网页 A,里面包含一个网页B(就是 A中有B这篇文章)的标题。我给A生成静态页面的时候,如果知道给A里面的连接B也生成静态页面呢? 如果B文章的标题更新了,我如何知道把B重新生成静态页面的同时,也要重新把A生成静态页面呢,因为A里面包括了B的标题!因此B的标题更新后,一定要把引用B文章的所有页面都重新生成静态的html,这个如何做到呢? 多谢!
方法是用过滤器,收到JSP页面的Response,然后,将response的内容,写在一个html文件当中。
就完事了。
论坛上的关于生成静态页面的帖子,大都回答的简单,不能用于实际项目中。单独生成一个静态页面肯定没问题,模板+数据就可以。但是真是场景是:我一个网页 A,里面包含一个网页B(就是 A中有B这篇文章)的标题。我给A生成静态页面的时候,如果知道给A里面的连接B也生成静态页面呢? 如果B文章的标题更新了,我如何知道把B重新生成静态页面的同时,也要重新把A生成静态页面呢,因为A里面包括了B的标题!因此B的标题更新后,一定要把引用B文章的所有页面都重新生成静态的html,这个如何做到呢? 多谢!
提供静态页面的编辑功能,包括搜索替换等。
静态页面背后有数据库支持,重新输出相关联的静态页面。
这两种都是针对变化不频繁的情况,如果静态页面的某个部分变化频繁,最简单的就是包含一段动态的js。
而针对这段js使用缓存技术来提升性能。