makenews.java

来自「一个实用的CMS管理」· Java 代码 · 共 63 行

JAVA
63
字号
package com.suncms.service.freemarker;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;

import com.suncms.comm.PureUtil;
import com.suncms.domain.Article;
import com.suncms.domain.News;
import com.suncms.domain.NewsFtl;
import com.suncms.domain.NewsHtml;
import com.suncms.exception.SuncmsException;


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

public class MakeNews {
	
	public String make(NewsHtml nh, NewsFtl newsFtl) throws SuncmsException {
		try{
		Configuration cfg = new Configuration();
		String realPath = newsFtl.getRealPath();
		String templatePath = realPath+"/WEB-INF/templates/news";
		String cDateStr = "news/"+PureUtil.getDateFormatStr("yyyyMMdd");
		String filePostfix = ".html";
		String path = realPath + "/" + cDateStr;
		String fileTimeName = PureUtil.getDateFormatStr("yyyyMMddhhmmss");
		String returnFileName = cDateStr + "/" + fileTimeName + filePostfix;
		String fileName = "";
		File newsDir = new File(path);
		if (newsDir.exists()) {
			fileName = path + "/" + fileTimeName + filePostfix;
		} else {
			newsDir.mkdirs();
			fileName = path + "/" + fileTimeName + filePostfix;
		}
		
			cfg.setDirectoryForTemplateLoading(new File(templatePath));
			cfg.setObjectWrapper(new DefaultObjectWrapper());
			Template newsTemplate = cfg.getTemplate(newsFtl.getTemplate_news());
			Map root = new HashMap();
			root.put("news", nh);
			Writer out = new OutputStreamWriter(new FileOutputStream(fileName));
			newsTemplate.process(root, out);
    		out.flush();
			return returnFileName;
		}catch(Exception e){
			throw new SuncmsException("error in MakeNews.make()");
		}
	}

	public static void main(String[] args) {
		// MakeNews makeNews = new MakeNews();
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?