⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 htmlgenerater.java

📁 EasyJF开源Blog系统是一个由EasyJF开源团队组织开发的基于Java平台的开源博客系统。当前Blog已经实现了基本的基本的博客的书写、流量统计、排名、个人像册、RSS、支持自定义模板、静态h
💻 JAVA
字号:
package com.easyjf.blog.logic;

import java.io.File;

import java.io.FileOutputStream;

import com.easyjf.blog.domain.BlogInfo;
import com.easyjf.blog.domain.BlogNewsDoc;
import com.easyjf.blog.logic.impl.BlogCoreServiceImpl;
import com.easyjf.blog.logic.impl.BlogMessageServiceImpl;
import com.easyjf.blog.logic.impl.BlogReviewServiceImpl;
import com.easyjf.blog.logic.impl.BlogUserServiceImpl;
import com.easyjf.blog.logic.impl.PhotoServiceImpl;

import java.io.OutputStreamWriter;
import java.io.Writer;

import org.apache.log4j.Logger;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.context.Context;
import org.apache.velocity.io.VelocityWriter;

import java.util.*;

import com.easyjf.web.RequestProcessor;
import com.easyjf.web.tools.CommTool;
import com.easyjf.util.CommUtil;

import com.easyjf.web.tools.IPageList;
import com.easyjf.web.Globals;

public class HTMLGenerater {
private String fileName;
private static String encoding="utf-8";
//private String baseDir="/html/";
private static final Logger logger = (Logger) Logger.getLogger(RequestProcessor.class.getName());
private static BlogUserService userService=BlogUserServiceImpl.getInstance();
private static BlogDirService bogDirService=BlogCoreServiceImpl.getInstance();
private static BlogNewsDocService blogDocService=BlogCoreServiceImpl.getInstance();
private static PhotoService photoService=PhotoServiceImpl.getInstance();
private static BlogReviewService reviewService=BlogReviewServiceImpl.getInstance();
private static BlogMessageService messageService=BlogMessageServiceImpl.getInstance();

public HTMLGenerater()
{
}
//生成Blog首页
public static boolean saveToHTML()
throws Exception
{
Context context = null;
Template template = null;    
context = new VelocityContext();
Date d2=new Date();
Calendar ca=Calendar.getInstance();
ca.setTime(d2);
ca.roll(Calendar.DATE,-1);
Date d1=ca.getTime();		
List todayHeadList=blogDocService.getTopBlogNewsDoc("displayTime desc", 2, 1);		
List eliteList=blogDocService.getTopBlogNewsDoc("displayTime desc", 1, 5);
List newsList=blogDocService.getTopBlogNewsDoc("displayTime desc", 0, 15);
context.put("todayHeadList",todayHeadList);		
context.put("eliteList", eliteList);		
context.put("list",newsList);
context.put("hotReadList",blogDocService.getTopBlogNewsDoc(null,null,d1,d2, "readTimes desc",0, 10));
context.put("hotReviewList",blogDocService.getTopBlogNewsDoc(null,null,d1,d2, "replyNum desc",0, 10));
addCommonContext(context);
CommTool.createUtilContext(context);
String fileName = "index.htm";
File file = new File(Globals.APP_BASE_DIR+"/"+fileName);
if(!file.getParentFile().exists())
    file.getParentFile().mkdirs();
String templateName ="/blog/index.html";    
template = VelocityFactory.getTemplate(templateName, "utf-8");
mergeTemplate(template, context, file);
return true;
}
//生成Blog首页
public static boolean saveToHTML(BlogInfo blog)
throws Exception
{
Context context = null;
Template template = null;    
context = new VelocityContext();

context.put("blog", blog);
IPageList pList=blogDocService.queryBlogNewsDoc(blog.getUserName(),1 , 15);
context.put("list", pList.getResult());
context.put("pages", new Integer(pList.getPages()));
context.put("rows", new Integer(pList.getRowCount()));
context.put("page", new Integer(pList.getCurrentPage()));
context.put("gotoPageHTML", CommUtil.showPageHtml(pList
		.getCurrentPage(), pList.getPages()));
context.put("blog",blog);
String tName=blog.getTemplate();
if(!CommUtil.hasLength(tName))tName="default";
context.put("templateName", tName);
addCommonContext(context);
CommTool.createUtilContext(context);
//生成domain/index.htm
String fileName = blog.getDomain()+"/index.htm";
File file = new File(Globals.APP_BASE_DIR+"/"+fileName);
if(!file.getParentFile().exists())
    file.getParentFile().mkdirs();
String templateName ="/blog/template/"+blog.getTemplate()+"/index.html";    
template = VelocityFactory.getTemplate(templateName, "utf-8");
mergeTemplate(template, context, file);
//生成domain/rss.xml
fileName=blog.getDomain()+"/rss.xml";
file = new File(Globals.APP_BASE_DIR+"/"+fileName);
template = VelocityFactory.getTemplate("/blog/rss.xml", "utf-8");
mergeTemplate(template, context, file);
return true;
}

public static boolean saveToHTML(BlogNewsDoc obj)
    throws Exception
{
    Context context = null;
    Template template = null;    
    context = new VelocityContext();
    
    context.put("obj", obj);
    BlogInfo blog=userService.getUserBlog(obj.getInputUser());
    context.put("blog",blog);
    context.put("reviewService", BlogReviewServiceImpl.getInstance());
    String tName=blog.getTemplate();
    if(!CommUtil.hasLength(tName))tName="default";
    context.put("templateName", tName);
    CommTool.createUtilContext(context);
    String fileName = obj.staticHtmlUrl();
    File file = new File(Globals.APP_BASE_DIR+"/"+fileName);
    if(!file.getParentFile().exists())
        file.getParentFile().mkdirs();
    String templateName = "/blog/template/"+tName+"/show.html";    
    template = VelocityFactory.getTemplate(templateName, "utf-8");
    mergeTemplate(template, context, file);
    return true;
}
public static void addCommonContext(Context context)
{
	context.put("dirService", BlogCoreServiceImpl.getInstance());
	context.put("cocService", BlogCoreServiceImpl.getInstance());
	//context.put("currentUser", CurrentUser.getActiveUser());
	context.put("photService", PhotoServiceImpl.getInstance());
	context.put("reviewService", BlogReviewServiceImpl.getInstance());
	context.put("messageService", BlogMessageServiceImpl.getInstance());
	context.put("userService", BlogUserServiceImpl.getInstance());
	context.put("linkService",com.easyjf.blog.logic.impl.FriendLinkServiceImpl.getInstance());
}
protected static void mergeTemplate(Template template, 
        Context context,File file)
{
	
	    Writer writer=null;
	    VelocityWriter vw = null;
	    try
	    {	
	    	writer=new OutputStreamWriter(new FileOutputStream (file),template.getEncoding());
	    	 vw = new VelocityWriter(writer, 4 * 1024, true);
	    	 template.merge(context, vw); 
	    }
	    catch(Exception e)
	    {
	    	logger.error("合成错误:"+e);
	    	e.printStackTrace();
	    }
	    finally
	    {
	        if (vw != null)
	        {
	            try
	            {              
	                vw.flush(); 
	                vw.close();
	                writer.close();
	            }
	            catch (Exception e)
	            {
	              logger.error(e.getMessage());
	              e.printStackTrace();
	            }                
	        }
	    }	
}   
}

⌨️ 快捷键说明

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