package com.kingschan.blog.common.freemarker.directive.article; import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.kingschan.blog.dao.Pagination; import com.kingschan.blog.services.ArticleService; import freemarker.core.Environment; import freemarker.template.ObjectWrapper; import freemarker.template.TemplateDirectiveBody; import freemarker.template.TemplateDirectiveModel; import freemarker.template.TemplateException; import freemarker.template.TemplateModel; /** * * * 类名称:ArticleCommentDirective * 类描述: 文章评论 * 创建人:kings.chan * 创建时间:2016-7-13 上午9:26:01 * 修改人: * 修改时间: * 项目:ROOT * 修改备注: * @version * */ @Component("ArticleComment") public class ArticleCommentDirective implements TemplateDirectiveModel { private static Logger log =LoggerFactory.getLogger(ArticleCommentDirective.class); @Autowired private ArticleService article_serv; @Override public void execute(Environment env, @SuppressWarnings("rawtypes") Map params, TemplateModel[] tm, TemplateDirectiveBody body) throws TemplateException, IOException { int page =params.containsKey("page")&¶ms.get("page").toString().matches("\\d+")?Integer.valueOf(params.get("page").toString()):1; int limit =params.containsKey("limit")&¶ms.get("limit").toString().matches("\\d+")?Integer.valueOf(params.get("limit").toString()):10; String articleId=params.containsKey("articleId")?params.get("articleId").toString():"";//文章 String website=params.containsKey("website")?params.get("website").toString():"";//网站 String exists_support_user=params.containsKey("exists_support_user")?params.get("exists_support_user").toString():"";//当前登录用户 HashMap<String, Object> map= new HashMap<String, Object>(); if (!website.isEmpty()) { map.put("website", website); } if (!exists_support_user.isEmpty()) { map.put("exists_support_user", exists_support_user); } Pagination p=null; try { p=article_serv.getCommentsByArticle(page, limit, articleId, map); if (null!=p) { env.setVariable("article_comment_lis", ObjectWrapper.DEFAULT_WRAPPER.wrap(p.getData())); env.setVariable("page", ObjectWrapper.DEFAULT_WRAPPER.wrap(p)); body.render(env.getOut()); } } catch (Exception e) { e.printStackTrace(); log.error("ArticleCommentDirective",e); } } }