HTML頁面靜態化實現
阿新 • • 發佈:2017-09-11
java
靜態化文件位置註意:
實體類定義:
public class News { private String title; private String pubTime; private String category; private String newsContent; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getPubTime() { return pubTime; } public void setPubTime(String pubTime) { this.pubTime = pubTime; } public String getCategory() { return category; } public void setCategory(String category) { this.category = category; } public String getNewsContent() { return newsContent; } public void setNewsContent(String newsContent) { this.newsContent = newsContent; } }
自定義流的工具類
public class CharStreamIO { public void copyFile(String fsrc,String fDest){ File file = new File(fDest); if(file.exists()){ file.delete(); } PrintWriter out = null; BufferedReader in = null; try { in = new BufferedReader(new FileReader(fsrc)); out = new PrintWriter(new BufferedWriter(new FileWriter(fDest))); String strRet; while((strRet=in.readLine()) != null){ out.println(strRet); out.flush(); } } catch (Exception e) { e.printStackTrace(); }finally{ if(in != null){ try { in.close(); } catch (Exception e2) { e2.printStackTrace(); } } if(out != null){ try { out.close(); } catch (Exception e2) { e2.printStackTrace(); } } } } /** * 把傳入的信息,保存成文件 * @param finfo 傳入的文件內容信息 * @param fname 目標路徑和文件名 */ public void writeFile(String finfo,String fDest){ File file = new File(fDest); if(file.exists()){ file.delete(); } PrintWriter out = null; try { out = new PrintWriter(new BufferedWriter(new FileWriter(fDest))); out.write(finfo); out.flush(); } catch (Exception e) { e.printStackTrace(); }finally{ if(out !=null){ out.close(); } } } /** * 讀取文本型文件 * @param name * @return */ public String readFile(String fname){ File file = new File(fname); StringBuilder bild = new StringBuilder(); BufferedReader in = null; if(file.exists()){ try { in = new BufferedReader(new FileReader(fname)); String strRet; while((strRet=in.readLine()) != null){ bild.append(strRet); } } catch (Exception e) { e.printStackTrace(); }finally{ if(in != null){ try { in.close(); } catch (Exception e2) { e2.printStackTrace(); } } } }else{ System.out.println(fname + "不存在"); } return bild.toString(); } }
數據訪問層
public class NewsDao { /** * 讀取數據庫中要生成的新聞信息 * @return */ public List<News> getAllNews(){ CharStreamIO io = new CharStreamIO(); SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); List<News> newsList = new ArrayList<News>(); News n1 = new News(); n1.setCategory("sport"); String c1 = io.readFile("NewsInfo\\news1.txt"); n1.setNewsContent(c1); n1.setPubTime(sd.format(new Date())); n1.setTitle("深足教練組:說我們買球是侮辱 朱廣滬常暗中支招"); News n2 = new News(); n2.setCategory("hot"); String c2 = io.readFile("\\NewsInfo\\news2.txt"); n2.setNewsContent(c2); n2.setPubTime(sd.format(new Date())); n2.setTitle("對對對發發發失誤失誤"); newsList.add(n1); newsList.add(n2); return newsList; } }
業務邏輯層
public class NewsBiz { /** * 讀取數據庫中要生成的新聞信息 * @return */ public void createAllNews() throws Exception{ NewsDao dao = new NewsDao(); List<News> newsList = dao.getAllNews(); String destPath = "/News/newspages"; for(int i=0;i<newsList.size();i++){ //讀取模板 CharStreamIO io = new CharStreamIO(); String tmp = io.readFile("/News/news.tmp"); //替換模板中的參數數據 News n = newsList.get(i); String newTmp; newTmp = tmp.replace(TemplateParam.TITLE, n.getTitle()); newTmp = newTmp.replace(TemplateParam.CATEGORY,n.getCategory()); newTmp = newTmp.replace(TemplateParam.PUB_TIME,n.getPubTime()); newTmp = newTmp.replace(TemplateParam.CONTENT, n.getNewsContent()); //把替換後的內容保存成新聞頁面 io.writeFile(newTmp, destPath + "/news-" + i + ".html"); } } }
TemplateParam類
public class TemplateParam { public static final String TITLE = "%{title}%"; public static final String CATEGORY = "%{category}%"; public static final String CONTENT = "%{newsContent}%"; public static final String PUB_TIME = "%{pubTime}%"; }
用戶接口層
public class NewsTest { public static void main(String[] args) { NewsBiz biz = new NewsBiz(); try { biz.createAllNews(); System.out.println("新聞頁面創建完畢!"); } catch (Exception e) { e.printStackTrace(); } } }
本文出自 “秦斌的博客” 博客,謝絕轉載!
HTML頁面靜態化實現