利用Freemarker生成html静态页面_html/css_WEB-ITnose
通过java生成文件毫无疑问会使用到流,对于流在该文章中不做重点解释。首先我们做一个准备工作,搭建你的项目,采用Freemarker模版技术,首先给大家展示一个Freemarker文件。
预定价格: ${trip.price!'面议'}元 目的地: ${trip.toCity!''} 行程天数:${trip.tripDay!'待定'} 提前预定天数: 建议提前一周报名 出团日期:${trip.toTirpTime} 友谊
模版建好了,我们接下来写一个工具类,通过该工具类生成html文件。FreeMarkerUtil.java 此处我们只列出主要用到的方法。
public static void writeTo(ServletContext context, Mapmap, String templatePath, String templateName, String htmlPath) throws IOException, TemplateException { Configuration freemarkerCfg = new Configuration(); // 设置要解析的模板所在的目录,并加载模板文件 freemarkerCfg.setServletContextForTemplateLoading(context, templatePath); freemarkerCfg.setEncoding(Locale.getDefault(), "UTF-8"); // 获取模板,并设置编码方式 Template template = freemarkerCfg.getTemplate(templateName); template.setEncoding("UTF-8"); File htmlFilel = new File(context.getRealPath("") +File.separator +"html"+File.separator+"channel"); if(! htmlFilel.exists()) { htmlFilel.mkdir(); } File htmlFile = new File(context.getRealPath("") + File.separator + htmlPath); Writer out = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(htmlFile), "UTF-8")); // 合并数据模型与模板 template.process(map, out); out.flush(); out.close(); }
需要导入的类,这些都在freemarker-2.3.16.jar 包中了:
import freemarker.template.Configuration;import freemarker.template.DefaultObjectWrapper;import freemarker.template.Template;import freemarker.template.TemplateException;
接下来就是业务处理了,其实很简单的没有任何的技术含量,这个功能也是在使用Freemarker做模版视图较多使用的,此处为了让学习的人看的明白,业务和控制层都写在一个方法了,容易理解。
public ModelAndView doAdd(HttpServletRequest request, MultipartHttpServletRequest filerequest, Trip trip) throws ParseException { Listfile1 = filerequest.getFiles("file1"); Listfile2 = filerequest.getFiles("file2"); if (file1.size() > 0) { String titleImg = ""; titleImg = uploadImage(request, file1.get(0)); if (null != titleImg && !titleImg.equals("")) { trip.setImgUrl(titleImg); } } if (file2.size() > 0) { String titleImg = ""; titleImg = uploadImage(request, file2.get(0)); if (null != titleImg && !titleImg.equals("")) { trip.setImgUrl2(titleImg); } } trip.setInputTime(new Date()); File directory = new File(request.getSession().getServletContext() .getRealPath("/") + "trip"); if (!directory.exists()) { directory.mkdirs(); } DateFormat format1 = new SimpleDateFormat("yyyyMMddhhmm"); String dateStr = format1.format(new Date()); String html = "trip" + File.separator + trip.getChannelId() + "-" + trip.getCityId() + "-" + dateStr + ".html"; trip.setUrlStr(html); PageBean pageBean3 = tripService.getTriplist(0, 10); ListtripList = pageBean3.getBeanList(); PageBean pageBean2 = newsService.getTripNewslist(1, 10); ListtripNewsList = pageBean2.getBeanList(); PageBean pageBean22 = newsService.getTripNews2list(1, 10); ListtripNews2List = pageBean22.getBeanList(); Map map = new HashMap(); map.put("tripNews2List", tripNews2List); map.put("tripList", tripList); map.put("tripNewsList", tripNewsList); map.put("trip", trip); map.put("base", request.getContextPath()); try { FreeMarkerUtil.writeTo(request.getSession().getServletContext(), map, "/templates", "trip.ftl", html); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (TemplateException e) { // TODO Auto-generated catch block e.printStackTrace(); } tripService.save(trip); return new ModelAndView("redirect:/trip/page.shtml?page_now=1"); }
好了,这样你就可以写你的静态网站了。
也许有人现在也不知道生成静态的作用到底是什么呢?
1、访问的时候不需要在操作数据库了。
2、对于搜索引擎来说html静态页面更加的友好。
3、访问速度变的很快。
等等,大家自己感受一下。有需要可留言要源码demo。
本文地址:http://www.osblog.net/code/117.html

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



HTML is suitable for beginners because it is simple and easy to learn and can quickly see results. 1) The learning curve of HTML is smooth and easy to get started. 2) Just master the basic tags to start creating web pages. 3) High flexibility and can be used in combination with CSS and JavaScript. 4) Rich learning resources and modern tools support the learning process.

HTML defines the web structure, CSS is responsible for style and layout, and JavaScript gives dynamic interaction. The three perform their duties in web development and jointly build a colorful website.

AnexampleofastartingtaginHTMLis,whichbeginsaparagraph.StartingtagsareessentialinHTMLastheyinitiateelements,definetheirtypes,andarecrucialforstructuringwebpagesandconstructingtheDOM.

WebdevelopmentreliesonHTML,CSS,andJavaScript:1)HTMLstructurescontent,2)CSSstylesit,and3)JavaScriptaddsinteractivity,formingthebasisofmodernwebexperiences.

GiteePages static website deployment failed: 404 error troubleshooting and resolution when using Gitee...

The Y-axis position adaptive algorithm for web annotation function This article will explore how to implement annotation functions similar to Word documents, especially how to deal with the interval between annotations...

To achieve the effect of scattering and enlarging the surrounding images after clicking on the image, many web designs need to achieve an interactive effect: click on a certain image to make the surrounding...

The necessity of registering VueRouter in the index.js file under the router folder When developing Vue applications, you often encounter problems with routing configuration. Special...
