利用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

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











HTML은 간단하고 배우기 쉽고 결과를 빠르게 볼 수 있기 때문에 초보자에게 적합합니다. 1) HTML의 학습 곡선은 매끄럽고 시작하기 쉽습니다. 2) 기본 태그를 마스터하여 웹 페이지를 만들기 시작하십시오. 3) 유연성이 높고 CSS 및 JavaScript와 함께 사용할 수 있습니다. 4) 풍부한 학습 리소스와 현대 도구는 학습 과정을 지원합니다.

HTML은 웹 구조를 정의하고 CSS는 스타일과 레이아웃을 담당하며 JavaScript는 동적 상호 작용을 제공합니다. 세 사람은 웹 개발에서 의무를 수행하고 화려한 웹 사이트를 공동으로 구축합니다.

anexampleStartingtaginhtmlis, whithbeginsaparagraph.startingtagsareessentialinhtmlastheyinitiate rements, definetheirtypes, andarecrucialforstructurituringwebpages 및 smanstlingthedom.

WebDevelopmentReliesonHtml, CSS 및 JavaScript : 1) HtmlStructuresContent, 2) CSSSTYLESIT, 및 3) JAVASCRIPTADDSINGINTERACTIVITY, BASISOFMODERNWEBEXPERIENCES를 형성합니다.

GiteEpages 정적 웹 사이트 배포 실패 : 404 오류 문제 해결 및 해결시 Gitee ...

웹 주석 기능에 대한 Y 축 위치 적응 알고리즘이 기사는 Word 문서와 유사한 주석 기능을 구현하는 방법, 특히 주석 간격을 다루는 방법을 모색합니다 ...

이미지를 클릭 한 후 주변 이미지를 산란 및 확대하는 효과를 얻으려면 많은 웹 디자인이 대화식 효과를 달성해야합니다. 특정 이미지를 클릭하여 주변을 만들 수 있습니다 ...

HTML, CSS 및 JavaScript는 웹 개발의 세 가지 기둥입니다. 1. HTML은 웹 페이지 구조를 정의하고 등과 같은 태그를 사용합니다. 2. CSS는 색상, 글꼴 크기 등과 같은 선택기 및 속성을 사용하여 웹 페이지 스타일을 제어합니다.
