问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-30 02:23

我来回答

5个回答

懂视网 时间:2022-05-13 12:32

求一个新闻发布页面,可添加图片的。前台的显示大概就像是《好奇心日报》文章那样的

http://www.qdaily.com/display/articles/5528.html


回复讨论(解决方案)

HTML5 啊,IE8(win7默认浏览器)打不开啊;得重构啊。

那个是好奇心日报的网址,确实用HTML5做的

热心网友 时间:2022-05-13 09:40

给你思路:
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 * 2013-09-18 */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>

热心网友 时间:2022-05-13 10:58

这个其实是在jsp页面填好新闻内容后,新闻数据被提交到数据库;当用户访问页面时,系统会从数据库取出数据,填充进jsp页面;服务器将填充好的jsp页面解释为html格式的数据流,返回给访问的用户浏览器,用户在浏览器上看到的就是最终页面了。追问那点击保存后,有没办法把发布的内容生成静态的呢,

热心网友 时间:2022-05-13 12:33

用java代码就可以实现了, 把新闻页面内容生成html静态文件。。你百度下java怎么将jsp静态化的

热心网友 时间:2022-05-13 14:24

System.out.print("hello world")

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 用Java实现,新消息提醒功能,类似于新浪微博的新消息提醒,请问谁有例子 关于开发微博的问题 java jsp 如何在java中实现sql递归查询,实现微博转发路径的表示,如以下表_百 ... 在Eclipse-Java中通过新浪API获取北京市一周的微博的代码编写 如何使用java代码访问微博短网址的url 如何用纯Java编一个可以发微博的桌面小程序,追加分 使用java新浪微博API开发,发布微博 谁有微博图片上传的java代码 跪求 ...然后点击分享按钮,分享到腾讯微博的java代码 java 开发微博 求助,如何用java实现同时向多平台发送微博,发送过程如果出错,前台怎么显示 怎样在esclip中写java代码发信息到微博上? [image]200 我想买一个能插卡的路由器,问现在的卡和路由器都是接收4G3G信号5G 车险每年必须交的是什么 求大神告知SpringMVC+Mybatis+easyui中的表单提交的路径怎么写 web。xml: 在什么地方能把5G路由器改为4G? 插卡路由器,卡是中国移动5G卡需要激活码? 魔兽世界中各专业附加的属性是什么? 怎么用VBA给图中块参照(BlockReference)添加属性值 海岛大亨4 内阁成员的属性如何选择?比如国防*=勇气,内务=?其他=?需要次要属性吗? 谁有java新浪微博api开发的源码示例给小弟一个 什么是银行承兑汇票包买? 简述商业承兑汇票包买衔生操作流程 我有100%保证金了 为什么要到你银行来承兑 男生是不是就应该主动追女生? 男生应不应该表白 表白的话需要男士主动吗? 手机能上传图片到淘宝店铺吗,怎么传 你觉得男生该不该有正式表白? 喜欢一个男生,不知道他是不是喜欢我,到底要不要主动表白啊? 好像喜欢上一个男生但不知道应不应该主动开口,到底要表白吗? 如果喜欢一个男孩子该不该主动对他表白,还是表现得矜持点等他对你表白点好呢? 我和认识一个月的男生互有好感,我该不该向他表白呢? 面对自己喜欢的男生,你会主动去表白吗? “英雄机长”刘传健有了新职务,他曾被授予过哪些称号? 有喜欢的男生到底该不该表白 喜欢了很久的男生,我应不应该主动表白啊? 白羊男我到底该不该主动跟你表白 喜欢的男孩子突然向我表白,该不该答应他? 刘传健颁奖词30字