📄 htmlgenerater.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 + -