package com.kingschan.blog.common.freemarker.directive.article; import java.io.IOException; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.kingschan.blog.model.vo.ArticleVo; import com.kingschan.blog.services.pub.impl.PubBlogServiceImpl; import freemarker.core.Environment; import freemarker.template.ObjectWrapper; import freemarker.template.TemplateDirectiveBody; import freemarker.template.TemplateDirectiveModel; import freemarker.template.TemplateException; import freemarker.template.TemplateModel; /** * 相似文章 * @author kingschan * */ @Component("SimilarArticles") public class SimilarArticlesDirective implements TemplateDirectiveModel { @Autowired private PubBlogServiceImpl serv; @Override public void execute(Environment env, @SuppressWarnings("rawtypes") Map params, TemplateModel[] tm, TemplateDirectiveBody body) throws TemplateException, IOException { int limit =params.containsKey("limit")&¶ms.get("limit").toString().matches("\\d+")?Integer.valueOf(params.get("limit").toString()):10; String keyword=params.containsKey("keyword")?params.get("keyword").toString():"";//日期 String website=params.containsKey("website")?params.get("website").toString():"";//网站 List<ArticleVo> lis = null; try { lis = serv.similarArticles(website, keyword, limit); } catch (Exception e) { e.printStackTrace(); } env.setVariable("SimilarArticles", ObjectWrapper.DEFAULT_WRAPPER.wrap(lis)); body.render(env.getOut()); } }