diff --git a/src/main/java/net/mingsoft/cms/action/GeneraterAction.java b/src/main/java/net/mingsoft/cms/action/GeneraterAction.java index dddfb24d..20092886 100644 --- a/src/main/java/net/mingsoft/cms/action/GeneraterAction.java +++ b/src/main/java/net/mingsoft/cms/action/GeneraterAction.java @@ -1,16 +1,16 @@ /** -The MIT License (MIT) * Copyright (c) 2016 铭飞科技(mingsoft.net) - + * The MIT License (MIT) * Copyright (c) 2016 铭飞科技(mingsoft.net) + *

* Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of * the Software, and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - + *

* The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. - + *

* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR @@ -74,228 +74,220 @@ import java.util.Map; @Scope("request") public class GeneraterAction extends BaseAction { - /* - * log4j日志记录 - */ - protected final Logger LOG = LoggerFactory.getLogger(this.getClass()); + /* + * log4j日志记录 + */ + protected final Logger LOG = LoggerFactory.getLogger(this.getClass()); - /** - * 文章管理业务层 - */ - @Autowired - private IContentBiz contentBiz; + /** + * 文章管理业务层 + */ + @Autowired + private IContentBiz contentBiz; - /** - * 栏目管理业务层 - */ - @Autowired - private ICategoryBiz categoryBiz; + /** + * 栏目管理业务层 + */ + @Autowired + private ICategoryBiz categoryBiz; - /** - * 模块管理业务层 - */ - @Autowired - private IModelBiz modelBiz; + /** + * 模块管理业务层 + */ + @Autowired + private IModelBiz modelBiz; - @Value("${ms.manager.path}") - private String managerPath; + @Value("${ms.manager.path}") + private String managerPath; - /** + /** - /** - * 更新主页 - * - * @return - */ - @RequestMapping("/index") - public String index(HttpServletRequest request, ModelMap model) { - return "/cms/generate/index"; - } + /** + * 更新主页 + * + * @return + */ + @RequestMapping("/index") + public String index(HttpServletRequest request, ModelMap model) { + return "/cms/generate/index"; + } - /** - * 生成主页 - * - * @param request - * @param response - */ - @RequestMapping("/generateIndex") - @RequiresPermissions("cms:generate:index") + /** + * 生成主页 + * + * @param request + * @param response + */ + @RequestMapping("/generateIndex") + @RequiresPermissions("cms:generate:index") @LogAnn(title = "生成主页", businessType = BusinessTypeEnum.UPDATE) - @ResponseBody - public ResultData generateIndex(HttpServletRequest request, HttpServletResponse response) throws IOException { - // 模版文件名称 - String tmpFileName = request.getParameter("url"); - // 生成后的文件名称 - String generateFileName = request.getParameter("position"); + @ResponseBody + public ResultData generateIndex(HttpServletRequest request, HttpServletResponse response) throws IOException { + // 模版文件名称 + String tmpFileName = request.getParameter("url"); + // 生成后的文件名称 + String generateFileName = request.getParameter("position"); - // 获取文件所在路径 首先判断用户输入的模版文件是否存在 - if (!FileUtil.exist(ParserUtil.buildTempletPath())) { - return ResultData.build().error(getResString("templet.file")); - } else { + // 获取文件所在路径 首先判断用户输入的模版文件是否存在 + if (!FileUtil.exist(ParserUtil.buildTempletPath())) { + return ResultData.build().error(getResString("templet.file")); + } else { CmsParserUtil.generate(tmpFileName, generateFileName); return ResultData.build().success(); - } - } + } + } - - /** - * 生成列表的静态页面 - * - * @param request - * @param response - * @param categoryId - */ - @RequestMapping("/{categoryId}/genernateColumn") + /** + * 生成列表的静态页面 + * + * @param request + * @param response + * @param categoryId + */ + @RequestMapping("/{categoryId}/genernateColumn") @LogAnn(title = "生成栏目", businessType = BusinessTypeEnum.UPDATE) - @RequiresPermissions("cms:generate:column") - @ResponseBody - public ResultData genernateColumn(HttpServletRequest request, HttpServletResponse response, @PathVariable String categoryId) throws IOException { - // 获取站点id - AppEntity app = BasicUtil.getApp(); - List columns = new ArrayList(); - // 如果栏目id小于0则更新所有的栏目,否则只更新选中的栏目 - if (!"0".equals(categoryId)) { - CategoryEntity categoryEntity = new CategoryEntity(); - categoryEntity.setId(categoryId); - columns = categoryBiz.queryChilds(categoryEntity); - } else { - // 获取所有的内容管理栏目 - CategoryEntity categoryEntity=new CategoryEntity(); - columns = categoryBiz.query(categoryEntity); - } - List articleIdList = null; - // 1、设置模板文件夹路径 - // 获取栏目列表模版 - for (CategoryEntity column : columns) { - ContentBean contentBean = new ContentBean(); - contentBean.setCategoryId(column.getId()); + @RequiresPermissions("cms:generate:column") + @ResponseBody + public ResultData genernateColumn(HttpServletRequest request, HttpServletResponse response, @PathVariable String categoryId) throws IOException { + // 获取站点id + AppEntity app = BasicUtil.getApp(); + + //栏目列表 + List columns = new ArrayList(); + + if ("0".equals(categoryId)) {// 0更新所有栏目 + CategoryEntity categoryEntity = new CategoryEntity(); + columns = categoryBiz.query(categoryEntity); + } else { //选择栏目更新 + CategoryEntity categoryEntity = new CategoryEntity(); + categoryEntity.setId(categoryId); + columns = categoryBiz.queryChilds(categoryEntity); + } + + //文章列表 + List articleIdList = null; + + // 获取栏目列表模版 + for (CategoryEntity column : columns) { + + ContentBean contentBean = new ContentBean(); + contentBean.setCategoryId(column.getId()); + + articleIdList = contentBiz.queryIdsByCategoryIdForParser(contentBean); + // 判断列表类型 + switch (column.getCategoryType()) { + //TODO 暂时先用字符串代替 + case "1": // 列表 - // 分类是列表 - if(column.getCategoryType().equals("1")) { // 判断模板文件是否存在 if (!FileUtil.exist(ParserUtil.buildTempletPath(column.getCategoryListUrl()))) { LOG.error("模板不存在:{}", column.getCategoryUrl()); continue; } - //获取模板中列表标签中的条件 - Map map = new HashMap<>(); - if(BasicUtil.getWebsiteApp() != null){ - map.put(ParserUtil.APP_ID, BasicUtil.getWebsiteApp().getAppId()); - } - PageBean page = new PageBean(); - map.put(ParserUtil.HTML, ParserUtil.HTML); - map.put(ParserUtil.URL, BasicUtil.getUrl()); - map.put(ParserUtil.PAGE, page); - } - articleIdList = contentBiz.queryIdsByCategoryIdForParser(contentBean); - // 判断列表类型 - switch (column.getCategoryType()) { - //TODO 暂时先用字符串代替 - case "1": // 列表 - CmsParserUtil.generateList(column, articleIdList.size()); - break; - case "2":// 单页 - if(articleIdList.size()==0){ - CategoryBean columnArticleIdBean=new CategoryBean(); - CopyOptions copyOptions=CopyOptions.create(); - copyOptions.setIgnoreError(true); - BeanUtil.copyProperties(column,columnArticleIdBean,copyOptions); - articleIdList.add(columnArticleIdBean); - } - CmsParserUtil.generateBasic(articleIdList); - break; - } - } + + CmsParserUtil.generateList(column, articleIdList.size()); + break; + case "2":// 单页 + if (articleIdList.size() == 0) { + CategoryBean columnArticleIdBean = new CategoryBean(); + CopyOptions copyOptions = CopyOptions.create(); + copyOptions.setIgnoreError(true); + BeanUtil.copyProperties(column, columnArticleIdBean, copyOptions); + articleIdList.add(columnArticleIdBean); + } + CmsParserUtil.generateBasic(articleIdList); + break; + } + } return ResultData.build().success(); - } + } - /** - * 根据栏目id更新所有的文章 - * - * @param request - * @param response - * @param columnId - */ - @RequestMapping("/{columnId}/generateArticle") - @RequiresPermissions("cms:generate:article") + /** + * 根据栏目id更新所有的文章 + * + * @param request + * @param response + * @param columnId + */ + @RequestMapping("/{columnId}/generateArticle") + @RequiresPermissions("cms:generate:article") @LogAnn(title = "生成文章", businessType = BusinessTypeEnum.UPDATE) - @ResponseBody - public ResultData generateArticle(HttpServletRequest request, HttpServletResponse response, @PathVariable String columnId) throws IOException { - String dateTime = request.getParameter("dateTime"); - // 网站风格物理路径 - List articleIdList = null; - List categoryList = null; - ContentBean contentBean = new ContentBean(); - contentBean.setBeginTime(dateTime); - Map map = new HashMap<>(); - if(BasicUtil.getWebsiteApp() != null){ - map.put(ParserUtil.APP_ID, BasicUtil.getWebsiteApp().getAppId()); - } - PageBean page = new PageBean(); - map.put(ParserUtil.HTML, ParserUtil.HTML); - map.put(ParserUtil.URL, BasicUtil.getUrl()); - map.put(ParserUtil.PAGE, page); - // 生成所有栏目的文章 - if("0".equals(columnId)){ - CategoryEntity categoryEntity = new CategoryEntity(); - categoryList = categoryBiz.query(categoryEntity); - for(CategoryEntity category : categoryList){ - contentBean.setCategoryId(category.getId()); - // 分类是列表 - if(category.getCategoryType().equals("1")){ - // 判断模板文件是否存在 - if (!FileUtil.exist(ParserUtil.buildTempletPath(category.getCategoryListUrl())) || StringUtils.isEmpty(category.getCategoryListUrl())) { - LOG.error("模板不存在:{}",category.getCategoryUrl()); - continue; - } + @ResponseBody + public ResultData generateArticle(HttpServletRequest request, HttpServletResponse response, @PathVariable String columnId) throws IOException { + String dateTime = request.getParameter("dateTime"); + // 网站风格物理路径 + List articleIdList = null; + List categoryList = null; + ContentBean contentBean = new ContentBean(); + contentBean.setBeginTime(dateTime); + Map map = new HashMap<>(); + if (BasicUtil.getWebsiteApp() != null) { + map.put(ParserUtil.APP_ID, BasicUtil.getWebsiteApp().getAppId()); + } + PageBean page = new PageBean(); + map.put(ParserUtil.HTML, ParserUtil.HTML); + map.put(ParserUtil.URL, BasicUtil.getUrl()); + map.put(ParserUtil.PAGE, page); + // 生成所有栏目的文章 + if ("0".equals(columnId)) { + CategoryEntity categoryEntity = new CategoryEntity(); + categoryList = categoryBiz.query(categoryEntity); + for (CategoryEntity category : categoryList) { + contentBean.setCategoryId(category.getId()); + // 分类是列表 + if (category.getCategoryType().equals("1")) { + // 判断模板文件是否存在 + if (!FileUtil.exist(ParserUtil.buildTempletPath(category.getCategoryListUrl())) || StringUtils.isEmpty(category.getCategoryListUrl())) { + LOG.error("模板不存在:{}", category.getCategoryUrl()); + continue; + } - } - //将文章列表标签中的中的参数 - articleIdList = contentBiz.queryIdsByCategoryIdForParser(contentBean); - // 有符合条件的就更新 - if (articleIdList.size() > 0) { - CmsParserUtil.generateBasic(articleIdList); - } - } - }else { - CategoryEntity category = (CategoryEntity) categoryBiz.getById(columnId); - contentBean.setCategoryId(columnId); - // 分类是列表 - if(category.getCategoryType().equals("1")){ - // 获取文章列表表属性 - // 判断模板文件是否存在 - if (!FileUtil.exist(ParserUtil.buildTempletPath(category.getCategoryUrl()))) { - LOG.error("模板不存在:{}",category.getCategoryUrl()); + } + //将文章列表标签中的中的参数 + articleIdList = contentBiz.queryIdsByCategoryIdForParser(contentBean); + // 有符合条件的就更新 + if (articleIdList.size() > 0) { + CmsParserUtil.generateBasic(articleIdList); + } + } + } else { + CategoryEntity category = (CategoryEntity) categoryBiz.getById(columnId); + contentBean.setCategoryId(columnId); + // 分类是列表 + if (category.getCategoryType().equals("1")) { + // 获取文章列表表属性 + // 判断模板文件是否存在 + if (!FileUtil.exist(ParserUtil.buildTempletPath(category.getCategoryUrl()))) { + LOG.error("模板不存在:{}", category.getCategoryUrl()); return ResultData.build().error(getResString("templet.file")); - } - } - articleIdList = contentBiz.queryIdsByCategoryIdForParser(contentBean); - // 有符合条件的就更新 - if (articleIdList.size() > 0) { - CmsParserUtil.generateBasic(articleIdList); - } - } + } + } + articleIdList = contentBiz.queryIdsByCategoryIdForParser(contentBean); + // 有符合条件的就更新 + if (articleIdList.size() > 0) { + CmsParserUtil.generateBasic(articleIdList); + } + } return ResultData.build().success(); - } + } - - /** - * 用户预览主页 - * - * @param request - * @return - */ - @RequestMapping("/{position}/viewIndex") - public String viewIndex(HttpServletRequest request, @PathVariable String position, HttpServletResponse response) { - AppEntity app = BasicUtil.getApp(); - // 组织主页预览地址 - String indexPosition = app.getAppHostUrl() + File.separator + ParserUtil.HTML + File.separator + app.getAppId() - + File.separator + position + ParserUtil.HTML_SUFFIX; - return "redirect:" + indexPosition; - } + /** + * 用户预览主页 + * + * @param request + * @return + */ + @RequestMapping("/{position}/viewIndex") + public String viewIndex(HttpServletRequest request, @PathVariable String position, HttpServletResponse response) { + AppEntity app = BasicUtil.getApp(); + // 组织主页预览地址 + String indexPosition = app.getAppHostUrl() + File.separator + ParserUtil.HTML + File.separator + app.getAppId() + + File.separator + position + ParserUtil.HTML_SUFFIX; + return "redirect:" + indexPosition; + } } diff --git a/src/main/java/net/mingsoft/cms/action/web/MCmsAction.java b/src/main/java/net/mingsoft/cms/action/web/MCmsAction.java index e4204600..f43d7e01 100644 --- a/src/main/java/net/mingsoft/cms/action/web/MCmsAction.java +++ b/src/main/java/net/mingsoft/cms/action/web/MCmsAction.java @@ -1,16 +1,16 @@ /** - The MIT License (MIT) * Copyright (c) 2016 铭飞科技(mingsoft.net) - + * The MIT License (MIT) * Copyright (c) 2016 铭飞科技(mingsoft.net) + *

* Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of * the Software, and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - + *

* The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. - + *

* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR @@ -25,6 +25,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.PageUtil; import freemarker.core.ParseException; import freemarker.template.MalformedTemplateNameException; +import freemarker.template.TemplateException; import freemarker.template.TemplateNotFoundException; import net.bytebuddy.implementation.bytecode.Throw; import net.mingsoft.base.constant.Const; @@ -70,430 +71,484 @@ import java.util.Map; @RequestMapping("/mcms") public class MCmsAction extends net.mingsoft.cms.action.BaseAction { - /** - * 自定义页面业务层 - */ - @Autowired - private IPageBiz pageBiz; + /** + * 自定义页面业务层 + */ + @Autowired + private IPageBiz pageBiz; - /** - * 文章管理业务处理层 - */ - @Autowired - private IContentBiz contentBiz; + /** + * 文章管理业务处理层 + */ + @Autowired + private IContentBiz contentBiz; - /** - * 栏目业务层 - */ - @Autowired - private ICategoryBiz categoryBiz; + /** + * 栏目业务层 + */ + @Autowired + private ICategoryBiz categoryBiz; + /** + * 搜索标签; + */ + public static final String SEARCH = "search"; - /** - * 搜索标签; - */ - public static final String SEARCH = "search"; - - /** - * 自定义模型 - */ - @Autowired - private IModelBiz modelBiz; + /** + * 自定义模型 + */ + @Autowired + private IModelBiz modelBiz; - /** - * 动态列表页 - */ - @GetMapping("/index.do") - @ResponseBody - public String index(HttpServletRequest req, HttpServletResponse resp) { - Map map = BasicUtil.assemblyRequestMap(); - map.forEach((k,v)->{ - map.put(k,v.toString().replaceAll("('|\"|\\\\)","\\\\$1")); - }); - map.put(ParserUtil.URL, BasicUtil.getUrl()); - //动态解析 - map.put(ParserUtil.IS_DO,true); - //设置动态请求的模块路径 - map.put(ParserUtil.MODEL_NAME, "mcms"); - //解析后的内容 - String content = ""; - try { - //根据模板路径,参数生成 - content = CmsParserUtil.generate(ParserUtil.INDEX+ParserUtil.HTM_SUFFIX, map); - } catch (TemplateNotFoundException e) { - e.printStackTrace(); - } catch (MalformedTemplateNameException e) { - e.printStackTrace(); - } catch (ParseException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - return content; - } + /** + * 动态列表页 + */ + @GetMapping("/index.do") + @ResponseBody + public String index(HttpServletRequest req, HttpServletResponse resp) { + Map map = BasicUtil.assemblyRequestMap(); + map.forEach((k, v) -> { + map.put(k, v.toString().replaceAll("('|\"|\\\\)", "\\\\$1")); + }); + map.put(ParserUtil.URL, BasicUtil.getUrl()); + //动态解析 + map.put(ParserUtil.IS_DO, true); + //设置动态请求的模块路径 + map.put(ParserUtil.MODEL_NAME, "mcms"); + //解析后的内容 + String content = ""; + try { + //根据模板路径,参数生成 + content = CmsParserUtil.generate(ParserUtil.INDEX + ParserUtil.HTM_SUFFIX, map); + } catch (TemplateNotFoundException e) { + e.printStackTrace(); + } catch (MalformedTemplateNameException e) { + e.printStackTrace(); + } catch (ParseException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return content; + } - /** - * 动态列表页 - * @param req - * @param resp - */ - @ResponseBody - @GetMapping("/list.do") - public String list(HttpServletRequest req, HttpServletResponse resp) { - Map map = BasicUtil.assemblyRequestMap(); - map.forEach((k,v)->{ - map.put(k,v.toString().replaceAll("('|\"|\\\\)","\\\\$1")); - }); - //获取栏目编号 - int typeId = BasicUtil.getInt(ParserUtil.TYPE_ID,0); - int size = BasicUtil.getInt(ParserUtil.SIZE,10); - ContentBean contentBean = new ContentBean(); - contentBean.setCategoryId(String.valueOf(typeId)); - //获取文章总数 - List columnArticles = contentBiz.queryIdsByCategoryIdForParser(contentBean); - //判断栏目下是否有文章 - if(columnArticles.size()==0){ - return ""; - } - //设置分页类 - PageBean page = new PageBean(); - int total = PageUtil.totalPage(columnArticles.size(), size); - map.put(ParserUtil.COLUMN, columnArticles.get(0)); - //获取总数 - page.setTotal(total); - //设置栏目编号 - map.put(ParserUtil.TYPE_ID, typeId); - //设置列表当前页 - map.put(ParserUtil.PAGE_NO, BasicUtil.getInt(ParserUtil.PAGE_NO,1)); + /** + * 动态列表页 + * + * @param req + * @param resp + */ + @ResponseBody + @GetMapping("/list.do") + public String list(HttpServletRequest req, HttpServletResponse resp) { + Map map = BasicUtil.assemblyRequestMap(); + map.forEach((k, v) -> { + map.put(k, v.toString().replaceAll("('|\"|\\\\)", "\\\\$1")); + }); + //获取栏目编号 + int typeId = BasicUtil.getInt(ParserUtil.TYPE_ID, 0); + int size = BasicUtil.getInt("size", 10); + ContentBean contentBean = new ContentBean(); + contentBean.setCategoryId(String.valueOf(typeId)); + //获取文章总数 + List columnArticles = contentBiz.queryIdsByCategoryIdForParser(contentBean); + //判断栏目下是否有文章 + if (columnArticles.size() == 0) { + return ""; + } + //设置分页类 + PageBean page = new PageBean(); + page.setPageNo(BasicUtil.getPageNo()); + int total = PageUtil.totalPage(columnArticles.size(), size); + map.put(ParserUtil.COLUMN, columnArticles.get(0)); + //获取总数 + page.setTotal(total); - map.put(ParserUtil.URL, BasicUtil.getUrl()); - map.put(ParserUtil.PAGE, page); - //动态解析 - map.put(ParserUtil.IS_DO,true); - //设置动态请求的模块路径 - map.put(ParserUtil.MODEL_NAME, "mcms"); - //解析后的内容 - String content = ""; - try { - //根据模板路径,参数生成 - content = CmsParserUtil.generate(columnArticles.get(0).getCategoryListUrl(),map); - } catch (TemplateNotFoundException e) { - e.printStackTrace(); - } catch (MalformedTemplateNameException e) { - e.printStackTrace(); - } catch (ParseException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - return content; - } + //设置栏目编号 + map.put(ParserUtil.TYPE_ID, typeId); - /** - * 动态详情页 - * @param id 文章编号 - */ - @GetMapping("/view.do") - @ResponseBody - public String view(String orderby,String order,HttpServletRequest req, HttpServletResponse resp) { - //参数文章编号 - ContentEntity article = (ContentEntity) contentBiz.getEntity(BasicUtil.getInt(ParserUtil.ID)); - if(ObjectUtil.isNull(article)){ - throw new BusinessException(this.getResString("err.empty", this.getResString("id"))) ; - } - if(StringUtils.isNotBlank(order)){ - //防注入 - if(!order.toLowerCase().equals("asc")&&!order.toLowerCase().equals("desc")){ - throw new BusinessException(this.getResString("err.error", this.getResString("order"))); - } - } + map.put(ParserUtil.URL, BasicUtil.getUrl()); + map.put(ParserUtil.PAGE, page); + //动态解析 + map.put(ParserUtil.IS_DO, true); + //设置动态请求的模块路径 + map.put(ParserUtil.MODEL_NAME, "mcms"); + //解析后的内容 + String content = ""; + try { + //根据模板路径,参数生成 + content = CmsParserUtil.generate(columnArticles.get(0).getCategoryListUrl(), map); + } catch (TemplateNotFoundException e) { + e.printStackTrace(); + } catch (MalformedTemplateNameException e) { + e.printStackTrace(); + } catch (ParseException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return content; + } - orderby= orderby.replaceAll("('|\"|\\\\)","\\\\$1"); - PageBean page = new PageBean(); - //用于详情上下页获取当前文章列表对应的分类,根据文章查询只能获取自身分类 - String typeId = BasicUtil.getString(ParserUtil.TYPE_ID,article.getCategoryId()); - //根据文章编号查询栏目详情模版 - CategoryEntity column = (CategoryEntity) categoryBiz.getEntity(Integer.parseInt(typeId)); - //解析后的内容 - String content = ""; - Map map = BasicUtil.assemblyRequestMap(); - map.forEach((k,v)->{ - //sql注入过滤 - map.put(k,v.toString().replaceAll("('|\"|\\\\)","\\\\$1")); - }); - //动态解析 - map.put(ParserUtil.IS_DO,true); - //设置栏目编号 - map.put(ParserUtil.TYPE_ID, typeId); - //设置动态请求的模块路径 - map.put(ParserUtil.MODEL_NAME, "mcms"); - map.put(ParserUtil.URL, BasicUtil.getUrl()); - map.put(ParserUtil.PAGE, page); - map.put(ParserUtil.ID, article.getId()); - ContentBean contentBean = new ContentBean(); - contentBean.setCategoryId(String.valueOf(typeId)); - contentBean.setOrderBy(orderby); - contentBean.setOrder(order); - List articleIdList = contentBiz.queryIdsByCategoryIdForParser(contentBean); - Map contentModelMap = new HashMap(); - ModelEntity contentModel = null; - for (int artId = 0; artId < articleIdList.size();) { - //如果不是当前文章则跳过 - if(articleIdList.get(artId).getArticleId().equals(article.getId())){ - artId++; - continue; - } - // 文章的栏目路径 - String categoryParentId = articleIdList.get(artId).getId() ; - if(StringUtils.isNotBlank(articleIdList.get(artId).getCategoryParentId())){ - categoryParentId += ','+articleIdList.get(artId).getCategoryParentId(); - } - // 文章的栏目模型编号 - Integer columnContentModelId = articleIdList.get(artId).getMdiyModelId(); - Map parserParams = new HashMap(); - parserParams.put(ParserUtil.COLUMN, articleIdList.get(artId)); - // 判断当前栏目是否有自定义模型 - if ( columnContentModelId != null && columnContentModelId > 0) { - // 通过当前栏目的模型编号获取,自定义模型表名 - if (contentModelMap.containsKey(columnContentModelId)) { - parserParams.put(ParserUtil.TABLE_NAME, contentModel.getModelTableName()); - } else { - // 通过栏目模型编号获取自定义模型实体 - contentModel=(ModelEntity)modelBiz.getEntity(columnContentModelId); - // 将自定义模型编号设置为key值 - contentModelMap.put(columnContentModelId, contentModel.getModelTableName()); - parserParams.put(ParserUtil.TABLE_NAME, contentModel.getModelTableName()); - } - } - // 第一篇文章没有上一篇 - if (artId > 0) { - CategoryBean preCaBean = articleIdList.get(artId - 1); - page.setPreId(preCaBean.getArticleId()); - } - // 最后一篇文章没有下一篇 - if (artId + 1 < articleIdList.size()) { - CategoryBean nextCaBean = articleIdList.get(artId + 1); - page.setNextId(nextCaBean.getArticleId()); - } - break; - } - try { - //根据模板路径,参数生成 - content = CmsParserUtil.generate(column.getCategoryUrl(), map); - } catch (TemplateNotFoundException e) { - e.printStackTrace(); - } catch (MalformedTemplateNameException e) { - e.printStackTrace(); - } catch (ParseException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - return content; - } + /** + * 动态详情页 + */ + @GetMapping("/view.do") + @ResponseBody + public String view(String orderby, String order, HttpServletRequest req, HttpServletResponse resp) { + //参数文章编号 + ContentEntity article = (ContentEntity) contentBiz.getEntity(BasicUtil.getInt(ParserUtil.ID)); + if (ObjectUtil.isNull(article)) { + throw new BusinessException(this.getResString("err.empty", this.getResString("id"))); + } + if (StringUtils.isNotBlank(order)) { + //防注入 + if (!order.toLowerCase().equals("asc") && !order.toLowerCase().equals("desc")) { + throw new BusinessException(this.getResString("err.error", this.getResString("order"))); + } + } + + orderby = orderby.replaceAll("('|\"|\\\\)", "\\\\$1"); + PageBean page = new PageBean(); + //用于详情上下页获取当前文章列表对应的分类,根据文章查询只能获取自身分类 + String typeId = BasicUtil.getString(ParserUtil.TYPE_ID, article.getCategoryId()); + //根据文章编号查询栏目详情模版 + CategoryEntity column = (CategoryEntity) categoryBiz.getEntity(Integer.parseInt(typeId)); + //解析后的内容 + String content = ""; + Map map = BasicUtil.assemblyRequestMap(); + map.forEach((k, v) -> { + //sql注入过滤 + map.put(k, v.toString().replaceAll("('|\"|\\\\)", "\\\\$1")); + }); + //动态解析 + map.put(ParserUtil.IS_DO, true); + //设置栏目编号 + map.put(ParserUtil.TYPE_ID, typeId); + //设置动态请求的模块路径 + map.put(ParserUtil.MODEL_NAME, "mcms"); + map.put(ParserUtil.URL, BasicUtil.getUrl()); + map.put(ParserUtil.PAGE, page); + map.put(ParserUtil.ID, article.getId()); + ContentBean contentBean = new ContentBean(); + contentBean.setCategoryId(String.valueOf(typeId)); + contentBean.setOrderBy(orderby); + contentBean.setOrder(order); + List articleIdList = contentBiz.queryIdsByCategoryIdForParser(contentBean); + Map contentModelMap = new HashMap(); + ModelEntity contentModel = null; + for (int artId = 0; artId < articleIdList.size(); ) { + //如果不是当前文章则跳过 + if (articleIdList.get(artId).getArticleId().equals(article.getId())) { + artId++; + continue; + } + // 文章的栏目路径 + String categoryParentId = articleIdList.get(artId).getId(); + if (StringUtils.isNotBlank(articleIdList.get(artId).getCategoryParentId())) { + categoryParentId += ',' + articleIdList.get(artId).getCategoryParentId(); + } + // 文章的栏目模型编号 + Integer columnContentModelId = articleIdList.get(artId).getMdiyModelId(); + Map parserParams = new HashMap(); + parserParams.put(ParserUtil.COLUMN, articleIdList.get(artId)); + // 判断当前栏目是否有自定义模型 + if (columnContentModelId != null && columnContentModelId > 0) { + // 通过当前栏目的模型编号获取,自定义模型表名 + if (contentModelMap.containsKey(columnContentModelId)) { + parserParams.put(ParserUtil.TABLE_NAME, contentModel.getModelTableName()); + } else { + // 通过栏目模型编号获取自定义模型实体 + contentModel = (ModelEntity) modelBiz.getEntity(columnContentModelId); + // 将自定义模型编号设置为key值 + contentModelMap.put(columnContentModelId, contentModel.getModelTableName()); + parserParams.put(ParserUtil.TABLE_NAME, contentModel.getModelTableName()); + } + } + // 第一篇文章没有上一篇 + if (artId > 0) { + CategoryBean preCaBean = articleIdList.get(artId - 1); + page.setPreId(preCaBean.getArticleId()); + } + // 最后一篇文章没有下一篇 + if (artId + 1 < articleIdList.size()) { + CategoryBean nextCaBean = articleIdList.get(artId + 1); + page.setNextId(nextCaBean.getArticleId()); + } + break; + } + try { + //根据模板路径,参数生成 + content = CmsParserUtil.generate(column.getCategoryUrl(), map); + } catch (TemplateNotFoundException e) { + e.printStackTrace(); + } catch (MalformedTemplateNameException e) { + e.printStackTrace(); + } catch (ParseException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return content; + } + /** + * 实现前端页面的文章搜索 + * + * @param request 搜索id + * @param response + */ + @RequestMapping(value = "search") + @ResponseBody + public String search(HttpServletRequest request, HttpServletResponse response) { + //设置分页类 + PageBean page = new PageBean(); + page.setSize(ParserUtil.getPageSize(SEARCH + ParserUtil.HTM_SUFFIX,20)); - /** - * 实现前端页面的文章搜索 - * - * @param request - * 搜索id - * @param response - */ - @RequestMapping(value = "search") - @ResponseBody - public String search(HttpServletRequest request, HttpServletResponse response) throws IOException { + //参数集合,提供给解析使用 + Map params = new HashMap<>(); - Map map = new HashMap<>(); - // 读取请求字段 - Map field = BasicUtil.assemblyRequestMap(); - // 自定义字段集合 - Map diyFieldName = new HashMap(); - CategoryEntity column = null; // 当前栏目 - ModelEntity contentModel = null; // 栏目对应模型 - List fieldValueList = new ArrayList(); // 栏目对应字段的值 - int typeId = 0; - String categoryIds = BasicUtil.getString("categoryId"); - //当传递了栏目编号,但不是栏目集合 - if(!StringUtil.isBlank(categoryIds) && !categoryIds.contains(",")){ - typeId = Integer.parseInt(categoryIds); - } - String url = BasicUtil.getUrl(); - //记录自定义模型字段名 - List filedStr = new ArrayList<>(); - //根据栏目确定自定义模型 - if(typeId>0){ - column = (CategoryEntity) categoryBiz.getEntity(Integer.parseInt(typeId+"")); - // 获取表单类型的id - if (column != null&&ObjectUtil.isNotNull(column.getMdiyModelId())) { - contentModel = (ModelEntity) modelBiz.getEntity(column.getMdiyModelId()); - if (contentModel != null) { - Map fieldMap = contentModel.getFieldMap(); - for (String s : fieldMap.keySet()) { - filedStr.add(fieldMap.get(s)); - } - map.put(ParserUtil.TABLE_NAME, contentModel.getModelTableName()); - } - } - map.put(ParserUtil.COLUMN, column); - } + // 读取请求字段 + Map field = BasicUtil.assemblyRequestMap(); - // 遍历取字段集合 - if (field != null) { - for (Map.Entry entry : field.entrySet()) { - if (entry != null) { - if (ObjectUtil.isNull(entry.getValue())) { - continue; - } - String value = entry.getValue().toString().replaceAll("('|\"|\\\\)","\\\\$1"); // 处理由get方法请求中文乱码问题 - value=clearXss(value); - if (request.getMethod().equals(RequestMethod.GET)) { // 如果是get方法需要将请求地址参数转码 - try { - value = new String(value.getBytes("ISO-8859-1"), Const.UTF8); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - } - // 保存至自定义字段集合 - if (!StringUtil.isBlank(value)) { - diyFieldName.put(entry.getKey(), value); - //判断请求中的是否是自定义模型中的字段 - if(filedStr.contains(entry.getKey())){ - //设置自定义模型字段和值 - DiyModelMap diyMap = new DiyModelMap(); - diyMap.setKey(entry.getKey()); - diyMap.setValue(value); - fieldValueList.add(diyMap); - } - } + // 自定义字段集合 + Map diyFieldName = new HashMap(); - } - } - } + //记录自定义模型字段名 + List filedStr = new ArrayList<>(); + // 栏目对应字段的值 + List fieldValueList = new ArrayList(); - //添加自定义模型的字段和值 - if(fieldValueList.size()>0){ - map.put("diyModel", fieldValueList); - } + // 当前栏目 + CategoryEntity column = null; + // 栏目对应模型 + ModelEntity contentModel = null; - //设置分页类 - PageBean page = new PageBean(); - Map searchMap = field; - StringBuilder urlParams=new StringBuilder(); - searchMap.forEach((k,v)->{ - //sql注入过滤 - if(v!=null){ - searchMap.put(k,v.toString().replaceAll("('|\"|\\\\)","\\\\$1")); - searchMap.put(k,clearXss(searchMap.get(k).toString())); - if(!ParserUtil.SIZE.equals(k)&&!ParserUtil.PAGE_NO.equals(k)){ + + //获取栏目信息 + int typeId = 0; + String categoryIds = BasicUtil.getString("categoryId"); + //当传递了栏目编号,但不是栏目集合 + if (!StringUtil.isBlank(categoryIds) && !categoryIds.contains(",")) { + typeId = Integer.parseInt(categoryIds); + } + + //当前访问的项目地址 + String url = BasicUtil.getUrl(); + + + //根据栏目确定自定义模型 + if (typeId > 0) { + column = (CategoryEntity) categoryBiz.getEntity(typeId); + // 获取表单类型的id + if (column != null && ObjectUtil.isNotNull(column.getMdiyModelId())) { + contentModel = (ModelEntity) modelBiz.getEntity(column.getMdiyModelId()); + if (contentModel != null) { + // 保存自定义模型的数据 + Map fieldMap = contentModel.getFieldMap(); + for (String s : fieldMap.keySet()) { + filedStr.add(fieldMap.get(s)); + } + // 设置自定义模型表名,方便解析的时候关联表查询 + params.put(ParserUtil.TABLE_NAME, contentModel.getModelTableName()); + } + } + + // 设置栏目,方便解析的时候关联表查询 + params.put(ParserUtil.COLUMN, column); + } + + // 处理读取请求字段 + if (field != null) { + for (Map.Entry entry : field.entrySet()) { + if (entry != null) { + //空值不处理 + if (ObjectUtil.isNull(entry.getValue())) { + continue; + } + + // 对值进行安全处理 + // 处理由get方法请求中文乱码问题 + String value = entry.getValue().toString().replaceAll("('|\"|\\\\)", "\\\\$1"); + //Xss过滤 + value = clearXss(value); + // 如果是get方法需要将请求地址参数转码 + if (request.getMethod().equals(RequestMethod.GET)) { + try { + value = new String(value.getBytes("ISO-8859-1"), Const.UTF8); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + } + + // 保存至自定义字段集合 + if (!StringUtil.isBlank(value)) { + diyFieldName.put(entry.getKey(), value); + //判断请求中的是否是自定义模型中的字段 + if (filedStr.contains(entry.getKey())) { + //设置自定义模型字段和值 + DiyModelMap diyMap = new DiyModelMap(); + diyMap.setKey(entry.getKey()); + diyMap.setValue(value); + fieldValueList.add(diyMap); + } + } + + } + } + } + + //添加自定义模型的字段和值 + if (fieldValueList.size() > 0) { + params.put("diyModel", fieldValueList); + } + + + Map searchMap = field; + StringBuilder urlParams = new StringBuilder(); + + searchMap.forEach((k, v) -> { + //sql注入过滤 + if (v != null) { + searchMap.put(k, v.toString().replaceAll("('|\"|\\\\)", "\\\\$1")); + searchMap.put(k, clearXss(searchMap.get(k).toString())); + if (!"size".equals(k) && !"pageNo".equals(k)) { urlParams.append(k).append("=").append(searchMap.get(k)).append("&"); } } - }); + }); - //查询数量 - int count= contentBiz.getSearchCount(contentModel,fieldValueList,searchMap,BasicUtil.getApp().getAppId(),categoryIds); - map.put(ParserUtil.URL, url); - map.put(SEARCH, searchMap); - if(BasicUtil.getWebsiteApp() != null){ - map.put(ParserUtil.APP_ID, BasicUtil.getWebsiteApp().getAppId()); - } - map.put(ParserUtil.PAGE, page); - map.put(ParserUtil.HTML, ParserUtil.HTML); - //动态解析 - map.put(ParserUtil.IS_DO,false); - //设置动态请求的模块路径 - map.put(ParserUtil.MODEL_NAME, "mcms"); - searchMap.put(ParserUtil.PAGE_NO, 0); - ParserUtil.read(SEARCH+ParserUtil.HTM_SUFFIX,map, page); - int total = PageUtil.totalPage(count, page.getSize()); - int pageNo = BasicUtil.getInt(ParserUtil.PAGE_NO, 1); - if(pageNo >= total && total!=0) { - pageNo = total; - } - //获取总数 - page.setTotal(total); + //查询数量 + int count = contentBiz.getSearchCount(contentModel, fieldValueList, searchMap, BasicUtil.getApp().getAppId(), categoryIds); + page.setRcount(count); + params.put(ParserUtil.URL, url); + params.put(SEARCH, searchMap); + if (BasicUtil.getWebsiteApp() != null) { + params.put(ParserUtil.APP_ID, BasicUtil.getWebsiteApp().getAppId()); + } + params.put(ParserUtil.PAGE, page); + params.put(ParserUtil.HTML, ParserUtil.HTML); + //动态解析 + params.put(ParserUtil.IS_DO, false); + //设置动态请求的模块路径 + params.put(ParserUtil.MODEL_NAME, "mcms"); - page.setPageNo(pageNo); - - //设置分页的统一链接 - url = url +request.getServletPath() +"?" + urlParams; - String pageNoStr = ParserUtil.SIZE+"="+page.getSize()+"&"+ParserUtil.PAGE_NO+"="; - //下一页 - String nextUrl = url + pageNoStr+((pageNo+1 > total)?total:pageNo+1); - //首页 - String indexUrl = url + pageNoStr + 1; - //尾页 - String lastUrl = url + pageNoStr + total; - //上一页 当前页为1时,上一页就是1 - String preUrl = url + pageNoStr + ((pageNo==1) ? 1:pageNo-1); - - page.setIndexUrl(indexUrl); - page.setNextUrl(nextUrl); - page.setPreUrl(preUrl); - page.setLastUrl(lastUrl); - - //解析后的内容 - String content = ""; - try { - //根据模板路径,参数生成 - content = CmsParserUtil.generate(SEARCH+ParserUtil.HTM_SUFFIX,map); - } catch (TemplateNotFoundException e) { - e.printStackTrace(); - } catch (MalformedTemplateNameException e) { - e.printStackTrace(); - } catch (ParseException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - return content; - } - - // 清除路径中的转义字符 - private String clearXss(String value) { - - if (value == null || "".equals(value)) { - return value; - } - - value = value.replaceAll("<", "<").replaceAll(">", ">"); - value = value.replaceAll("\\(", "(").replace("\\)", ")"); - value = value.replaceAll("'", "'"); - value = value.replaceAll("eval\\((.*)\\)", ""); - value = value.replaceAll("[\\\"\\\'][\\s]*javascript:(.*)[\\\"\\\']", - "\"\""); - value = value.replace("script", ""); - - return value; - } - - /** - * 存储自定义模型字段和接口参数 - * @author 铭飞开源团队 - * @date 2019年3月5日 - */ - public class DiyModelMap { - String key; - Object value; - public String getKey() { - return key; - } - public void setKey(String key) { - this.key = key; - } - public Object getValue() { - return value; - } - public void setValue(Object value) { - this.value = value; - } - } + searchMap.put("pageNo", 0); +// ParserUtil.read(SEARCH + ParserUtil.HTM_SUFFIX, map, page); + int total = PageUtil.totalPage(count, page.getSize()); + int pageNo = BasicUtil.getInt("pageNo", 1); + if (pageNo >= total && total != 0) { + pageNo = total; + } + //获取总数 + page.setTotal(total); + page.setPageNo(pageNo); + + //设置分页的统一链接 + url = url + request.getServletPath() + "?" + urlParams; + String pageNoStr = "size=" + page.getSize() + "&pageNo="; + //下一页 + String nextUrl = url + pageNoStr + ((pageNo + 1 > total) ? total : pageNo + 1); + //首页 + String indexUrl = url + pageNoStr + 1; + //尾页 + String lastUrl = url + pageNoStr + total; + //上一页 当前页为1时,上一页就是1 + String preUrl = url + pageNoStr + ((pageNo == 1) ? 1 : pageNo - 1); + + page.setIndexUrl(indexUrl); + page.setNextUrl(nextUrl); + page.setPreUrl(preUrl); + page.setLastUrl(lastUrl); + + params.put(ParserUtil.URL, url); + params.put(SEARCH, searchMap); + if (BasicUtil.getWebsiteApp() != null) { + params.put(ParserUtil.APP_ID, BasicUtil.getWebsiteApp().getAppId()); + } + params.put(ParserUtil.PAGE, page); + params.put(ParserUtil.HTML, ParserUtil.HTML); + //动态解析 + params.put(ParserUtil.IS_DO, false); + //设置动态请求的模块路径 + params.put(ParserUtil.MODEL_NAME, "mcms"); + + //解析后的内容 + String content = ""; + try { + //根据模板路径,参数生成 + content = CmsParserUtil.generate(SEARCH + ParserUtil.HTM_SUFFIX, params); + } catch (TemplateNotFoundException e) { + e.printStackTrace(); + } catch (MalformedTemplateNameException e) { + e.printStackTrace(); + } catch (ParseException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return content; + } + + // 清除路径中的转义字符 + private String clearXss(String value) { + + if (value == null || "".equals(value)) { + return value; + } + + value = value.replaceAll("<", "<").replaceAll(">", ">"); + value = value.replaceAll("\\(", "(").replace("\\)", ")"); + value = value.replaceAll("'", "'"); + value = value.replaceAll("eval\\((.*)\\)", ""); + value = value.replaceAll("[\\\"\\\'][\\s]*javascript:(.*)[\\\"\\\']", + "\"\""); + value = value.replace("script", ""); + + return value; + } + + /** + * 存储自定义模型字段和接口参数 + * + * @author 铭飞开源团队 + * @date 2019年3月5日 + */ + class DiyModelMap { + String key; + Object value; + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public Object getValue() { + return value; + } + + public void setValue(Object value) { + this.value = value; + } + } + + + public static void main(String[] args) { + + int [] a= PageUtil.rainbow(20,30,5); + for(int _a:a) { + System.out.println(_a); + } + + } } diff --git a/src/main/java/net/mingsoft/cms/bean/ContentBean.java b/src/main/java/net/mingsoft/cms/bean/ContentBean.java index 750753ae..e42f378a 100644 --- a/src/main/java/net/mingsoft/cms/bean/ContentBean.java +++ b/src/main/java/net/mingsoft/cms/bean/ContentBean.java @@ -37,13 +37,7 @@ public class ContentBean extends ContentEntity { */ private String noflag; -// public String getStaticUrl() { -// return staticUrl; -// } -// -// public void setStaticUrl(String staticUrl) { -// this.staticUrl = staticUrl; -// } + public String getBeginTime() { return beginTime; diff --git a/src/main/java/net/mingsoft/cms/biz/impl/ContentBizImpl.java b/src/main/java/net/mingsoft/cms/biz/impl/ContentBizImpl.java index fb5a77cf..d0424304 100644 --- a/src/main/java/net/mingsoft/cms/biz/impl/ContentBizImpl.java +++ b/src/main/java/net/mingsoft/cms/biz/impl/ContentBizImpl.java @@ -229,7 +229,7 @@ public class ContentBizImpl extends BaseBizImpl imp if(BasicUtil.getWebsiteApp() !=null){ map.put(ParserUtil.APP_ID, BasicUtil.getWebsiteApp().getAppId()); } - String read = ParserUtil.read(templatePath, map); + String read = ParserUtil.rendering(templatePath, map); FileUtil.writeString(read, ParserUtil.buildHtmlPath(targetPath), net.mingsoft.base.constant.Const.UTF8); } diff --git a/src/main/java/net/mingsoft/cms/util/CmsParserUtil.java b/src/main/java/net/mingsoft/cms/util/CmsParserUtil.java index b2b65053..5b2b5b9c 100644 --- a/src/main/java/net/mingsoft/cms/util/CmsParserUtil.java +++ b/src/main/java/net/mingsoft/cms/util/CmsParserUtil.java @@ -71,25 +71,36 @@ public class CmsParserUtil extends ParserUtil { throws TemplateNotFoundException, MalformedTemplateNameException, ParseException, IOException { try{ // 文章的栏目模型编号 - Integer columnContentModelId = column.getMdiyModelId(); PageBean page = new PageBean(); - page.setSize(10); - //获取分页数量 - //获取列表页显示的文章数量 - //获取总数 + //获取列表中的size + page.setSize(ParserUtil.getPageSize(column.getCategoryListUrl(),20)); + page.setRcount(articleIdTotal); + + int totalPageSize = PageUtil.totalPage(articleIdTotal, page.getSize()); + page.setTotal(totalPageSize); + + //获取模板中列表标签中的条件 + Map map = new HashMap<>(); + if (BasicUtil.getWebsiteApp() != null) { + map.put(ParserUtil.APP_ID, BasicUtil.getWebsiteApp().getAppId()); + } + + map.put(ParserUtil.HTML, ParserUtil.HTML); + map.put(ParserUtil.URL, BasicUtil.getUrl()); + map.put(ParserUtil.PAGE, page); String columnListPath; ModelEntity contentModel = null; // 判断当前栏目是否有自定义模型 - if (columnContentModelId != null) { + if (column.getMdiyModelId() != null) { // 通过栏目模型编号获取自定义模型实体 - contentModel = (ModelEntity) SpringUtil.getBean(ModelBizImpl.class).getEntity(columnContentModelId); + contentModel = (ModelEntity) SpringUtil.getBean(ModelBizImpl.class).getEntity(column.getMdiyModelId()); } - int pageNo = 1; //全局参数设置 Map parserParams = new HashMap(); + parserParams.put(ParserUtil.PAGE, page); parserParams.put(COLUMN, column); //标签中使用field获取当前栏目 parserParams.put(FIELD, column); @@ -106,17 +117,15 @@ public class CmsParserUtil extends ParserUtil { if(ParserUtil.IS_SINGLE) { parserParams.put(ParserUtil.URL, BasicUtil.getUrl()); } - parserParams.put(ParserUtil.PAGE, page); - ParserUtil.read(File.separator + column.getCategoryListUrl(),parserParams, page); - int totalPageSize = PageUtil.totalPage(articleIdTotal, page.getSize()); - page.setTotal(totalPageSize); + + int pageNo = 1; //文章列表页没有写文章列表标签,总数为0 if (totalPageSize <= 0) { // 数据库中第一页是从开始0*size columnListPath = ParserUtil.buildHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX); // 设置分页的起始位置 page.setPageNo(pageNo); - String read = ParserUtil.read(File.separator + column.getCategoryListUrl(), parserParams); + String read = ParserUtil.rendering(File.separator + column.getCategoryListUrl(), parserParams); FileUtil.writeString(read, columnListPath, Const.UTF8); } else { @@ -134,7 +143,7 @@ public class CmsParserUtil extends ParserUtil { } // 设置分页的起始位置 page.setPageNo(pageNo); - String read = ParserUtil.read(File.separator + column.getCategoryListUrl(), parserParams); + String read = ParserUtil.rendering(File.separator + column.getCategoryListUrl(), parserParams); FileUtil.writeString(read, columnListPath, Const.UTF8); pageNo++; }