欢迎使用CSDN-markdown编辑器
来源:互联网 发布:find命令linux 编辑:程序博客网 时间:2024/05/20 14:15
文章添加(使用模板article.ftl,然后进行封装,保存至本地)
注:上传至ftp服务器另外文章说明
@RequestMapping("/addarticle") public ModelAndView addArticle(HttpServletRequest request, HttpServletResponse response,@ModelAttribute ArticleEntity article) throws Exception{ ModelAndView view = new ModelAndView(); String fileName=null; FreeMarkerUtil freeMarkerUtil = FreeMarkerUtil.getFreeMarkerUtil(); String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); //1、整体包含内容rootMap Map<String, String> rootMap = new HashMap<String, String>(); rootMap.put("content", article.getContent()); rootMap.put("imageurl", article.getIMAGE_URL()); rootMap.put("title", article.getTITLE()); rootMap.put("summary", article.getSUMMARY()); rootMap.put("time", time); rootMap.put("image_urls", article.getIMAGE_URL()); //2、html命名 long timenow = System.currentTimeMillis(); fileName = fileRename(timenow+".html"); //3、设置本地保存地址 String projroot = request.getSession().getServletContext().getRealPath("/"); String directory = new File(projroot).getParent()+"/ROOT/html/"; //4、封装 保存到本地 boolean isok = freeMarkerUtil.genHtmlFile(directory,"article.ftl", rootMap, fileName); //5、封装成功--- 数据库文章url 图片url if(isok){ article.setCONTENT_URL(fileName); } //数据插入数据库 boolean ok = articleService.saveEntity(article); if (ok){ view.setViewName("redirect:/article/articlelist"); }else{ view.setViewName("/jsp/error/error_404"); } return view; }
调用部分的方法(fileRename()和FreeMarkerUtil 的genHtmlFile()):
public static String fileRename(String fileName){ String formatDate = new SimpleDateFormat("yyyyMMddHHmmss") .format(new Date()); String rename; int i = (int) (Math.random() * fileName.length()); if(fileName!=null&&fileName.contains(".")){ rename = formatDate +i+fileName.substring(fileName.lastIndexOf(".")); }else{ rename = formatDate +i; } return rename; } public boolean genHtmlFile(String sRootDir, String templateFileName, Map<?, ?> propMap, String htmlFileName) throws Exception { File file = null; try { Template t = getFreeMarkerConfig().getTemplate(templateFileName); t.setEncoding("UTF-8"); createDirs(sRootDir); file = new File(sRootDir + "/" + htmlFileName); Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "UTF-8")); t.process(propMap, out); out.flush(); out.close(); } catch (TemplateException e) { if(file != null) { file.delete(); } logger.error("Error while processing FreeMarker Template" + templateFileName, e); throw new Exception(); } catch (IOException e) { if(file != null) { file.delete(); } logger.error("Error while generate static html file" + htmlFileName, e); throw new Exception(); } return true; }
阅读全文
0 0
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- Python神经网络识别手写字体
- 第十三周项目一
- Power+DC
- linux 64位系统 NetBeans 编译32位qt程序
- [IDEA]Maven创建web子模块并运行
- 欢迎使用CSDN-markdown编辑器
- Makefile中加带时间戳的打印
- Java中如何获取图片的长和宽
- 第三周 【项目2】 建设“顺序表”算法库
- AlphaZero炼成最强通用棋类AI,DeepMind强化学习算法8小时完爆人类棋类游戏
- 腾讯开源的Android UI框架——QMUI Android
- 写一个方法获取 url ?后面的参数,并将参数对象化。
- 第三周-项目四-顺序表应用
- HTML报表EXCEL输出