发发汽车网发发汽车网发发汽车网

欢迎光临
我们一直在努力

新闻发布时候的静态页面生成 java

广告位,电脑和手机可分别设置,可放任何广告代码

新闻发布时候的静态页面生成 java

给你思路:

1、使用java+freeMarker实现。

2、使用java的IO写HTML文档。

3、使用URLRewriter将*.jsp伪装成*.html来访问。

4、将html的内容存入数据库中,在运行时读取出来在服务端输出成html。最后把请求转至html

第一种最简单,不知道你用过没有。简单的说,就是你想生成一个动态的html,你只需要html页面的静态部分写死,作为模板,动态的数据部分,用java的Map封装起来,然后交给freeMarker,它会帮你写入html文档中。最后给你生成你想要的html文档。这个html文档具有你的静态结构,加上动态数据。我给你个示例。

import java.io.ByteArrayOutputStream;import java.io.OutputStreamWriter;import java.io.Writer;import java.util.Locale;import java.util.Map;

import freemarker.template.Configuration;import freemarker.template.DefaultObjectWrapper;import freemarker.template.Template;

/** * 使用freeMarker模板生成报表的动态数据代码 * @author wzj * */public class ReportFreeMarker { private static Configuration cfg = new Configuration(); private static final String FTL_FILE = chart_templet_; static { try { cfg.setDefaultEncoding(utf-8); cfg.setClassForTemplateLoading(ReportFreeMarker.class, ); cfg.setObjectWrapper(new DefaultObjectWrapper()); } catch (Exception e) { e.printStackTrace(); } } // public static void main(String[] args) throws Exception {// new ReportFreeMarker().execute(chart_templet.ftl);//}

/** * 根据type来决定使用哪个模板文件,生成对应的柱图,饼图(1-柱图,2-饼图) * @param parameterMap 参数集 * @param type 图表类别 * @return * @throws Exception */ public String buildChartCode(Map parameterMap, int type) throws Exception { Template t = cfg.getTemplate(FTL_FILE + type + .ftl); t.setEncoding(utf-8); String result = null; Writer out = null; ByteArrayOutputStream bos = new ByteArrayOutputStream(); try { out = new OutputStreamWriter(bos); t.process(parameterMap, out); out.flush(); result = new String(bos.toByteArray()); } catch (Exception e) { e.printStackTrace(); throw e; } finally { if (out != null) { out.close(); } if ( bos != null ) bos.close(); bos = null; } return result;

// File tmp = new File(./tmp.xml); //写成tmp.xml测试// if ( tmp.exists() ) tmp.delete();// Writer out = null;// try {// out = new OutputStreamWriter(new FileOutputStream(tmp), utf-8);// t.process(root, out);// out.flush();// } catch (Exception e) {// e.printStackTrace();// throw e;// } finally {// if (out != null) {// out.close();// }// } }}

//下面是调用

ReportFreeMarker marker = new ReportFreeMarker(); Map root = new HashMap();

root.put(CHART_XLIST, xlist); root.put(CHART_YLIST, ylist); String content = null; try { content = marker.buildChartCode(root, chartType);//根据模板生成图表xml代码 } catch (Exception e) { e.printStackTrace(); throw new ReportException(ERROR_FREEMARKER_FAILED + ( + e.getMessage() + )); }

这样,你最后可以得到一个包含动态数据的静态html页面的代码,保存成一个文件。

////在html中(模板)可以这样写

<html> <body>

<#list ylist as item> <!--这就是动态的,要封装成map传入--> <table></table>

</#list>

</body>

</html>

广告位,电脑和手机可分别设置,可放任何广告代码
海报 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《新闻发布时候的静态页面生成 java》
文章链接: https://185885.com/qc/79434.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到
广告位,电脑和手机可分别设置,可放任何广告代码
广告位,电脑和手机可分别设置,可放任何广告代码

评论 抢沙发

新能源汽车网

最新新能源汽车信息、汽车零部件、汽车配件、新能源电池、电机等相关信息...

关于我们 联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏