Freemark を使用して静的な HTML を生成する_html/css_WEB-ITnose

WBOY
リリース: 2016-06-21 08:51:13
オリジナル
990 人が閲覧しました

Java を介してファイルを生成するには、間違いなくストリームが使用されますが、この記事ではストリームについては説明しません。まず、いくつかの準備作業を行い、プロジェクトをビルドし、Freemarker テンプレート テクノロジを使用して、最初に Freemark ファイルを表示しましょう。

预定价格: ${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;
ログイン後にコピー

実際、次のステップはビジネス処理です。技術的な内容は一切なく、非常にシンプルです。この関数は、フリーマーカーを使用してテンプレート ビューを作成するときにもよく使用されます。学習したい人にわかりやすくするために、ビジネス レイヤーとコントロール レイヤーは理解しやすい 1 つのメソッドで記述されています。 。

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");	}
ログイン後にコピー

さて、これで静的 Web サイトを作成できます。

静電気を発生させる機能が何なのか知らない人もいるかも?

1. アクセス時にデータベースを操作する必要はありません。

2. HTML 静的ページは検索エンジンにとってより使いやすいです。

3. アクセス速度が非常に速くなります。

待って、自分の目で感じてみましょう。必要に応じて、メッセージを残してソース コードのデモをリクエストできます。

この記事のアドレス: http://www.osblog.net/code/117.html

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!