为什么用动态列表加静态详细页面?
便于开发和维护……实际上是可以全部动态,文章放到fckediter中,但是网页编辑没有css基础是很难做好的,现在我们可以通过上传jsp的形式注入jsp,达到动态化。。。。。
缺陷:
文章内容的分词搜索 就不可能实现,,,,
<%@ page contentType="text/html; charset=UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%>栏目详情页 <%@ include file="../common/header_long.jsp"%><%@ include file="../common/foot_long.jsp"%>
<%@ page contentType="text/html; charset=UTF-8"%>栏目列表页 <%@ include file="../common/header_long.jsp"%><%@ include file="../common/foot_long.jsp"%>共300条记录,每页显示 5条
package com.fusionability.web.bean;/** * @author baoyou E-mail:curiousby@163.com * @version 创建时间:2015年6月30日 下午1:57:35 * 类说明 */public class Article {// articleId,articleTitle,articleContent,insertTime,category,source,topage,count,image,hasImage,desc private String articleId; private String articleTitle; private byte[] articleContent; private String insertTime; private String category; private String source; private String topage; private long count; private String image; private int hasImage; private String des; public String getArticleId() { return articleId; } public void setArticleId(String articleId) { this.articleId = articleId; } public String getArticleTitle() { return articleTitle; } public void setArticleTitle(String articleTitle) { this.articleTitle = articleTitle; } public String getInsertTime() { return insertTime; } public void setInsertTime(String insertTime) { this.insertTime = insertTime; } public String getCategory() { return category; } public void setCategory(String category) { this.category = category; } public byte[] getArticleContent() { return articleContent; } public void setArticleContent(byte[] articleContent) { this.articleContent = articleContent; } public String getSource() { return source; } public void setSource(String source) { this.source = source; } public String getTopage() { return topage; } public void setTopage(String topage) { this.topage = topage; } public long getCount() { return count; } public void setCount(long count) { this.count = count; } public String getImage() { return image; } public void setImage(String image) { this.image = image; } public int getHasImage() { return hasImage; } public void setHasImage(int hasImage) { this.hasImage = hasImage; } public String getDes() { return des; } public void setDes(String des) { this.des = des; }}
@SuppressWarnings("unchecked") public Article getNextArticleById(String articleId) { Listlist = new ArrayList (); try{ String sql = "select articleId,articleTitle,articleContent,insertTime,category,source,topage,count,image,hasImage,des " + "from article order by insertTime desc "; list= this.getJdbcTemplate().query(sql, new ArticleBlobRowMapper()); if (list !=null) { return getArticle(articleId, list, 1); }else{ return null; } }catch(Exception e){ logger.error("Exception,", e); } return null; } @SuppressWarnings("unchecked") public Article getBeforeArticleById(String articleId) { List list = new ArrayList (); try{ String sql = "select articleId,articleTitle,articleContent,insertTime,category,source,topage,count,image,hasImage,des " + "from article order by insertTime desc"; list= this.getJdbcTemplate().query(sql, new ArticleBlobRowMapper()); if (list !=null) { return getArticle(articleId, list, -1); }else{ return null; } }catch(Exception e){ logger.error("Exception,", e); } return null; } //flag = 0 本生 flag=-1 上一篇文章 flag=+1 下一篇文章 private Article getArticle (String articleId ,List list ,int flag ){ int index=0; for (int i = 0; i < list.size(); i++) { Article a = list.get(i); if ( articleId.equals(a.getArticleId())) { index=i; } } switch (flag) { case -1: if (index+flag<0) { return null; } break; case 0: break; case 1: if (index+flag>=list.size()) { return null; } break; default: break; } for (int i = 0; i < list.size(); i++) { if (i== (index + flag)) { return list.get(i); } } return null; }
public void getTable() { try { Listlist = articleService.getList(limit, offset*limit); List ArticleVOlist = new ArrayList (); for (int i = 0; i < list.size(); i++) { Article a =list.get(i); ArticleVO avo = new ArticleVO(); avo.setArticleId(a.getArticleId()); avo.setArticleTitle(a.getArticleTitle()); avo.setArticleContent(a.getArticleContent() == null ? "" : new String(a.getArticleContent(), "UTF-8")); avo.setInsertTime(a.getInsertTime()); avo.setCategory(a.getCategory()); avo.setSource(a.getSource()); avo.setTopage(a.getTopage()); avo.setCount(a.getCount()); avo.setImage(a.getImage()); avo.setHasImage(a.getHasImage()); avo.setDes(a.getDes()); ArticleVOlist.add(avo); } int count = articleService.getCount(); JSONObject jsonobj = new JSONObject(); jsonobj.put("total", count); JSONArray jsonarr = new JSONArray(ArticleVOlist); jsonobj.put("rows", jsonarr); System.out.println(jsonobj.toString()); getResponse().getWriter().print(jsonobj.toString()); } catch (IOException | JSONException e) { } }
public String toArticleDailPage() { Article article = articleService.getArticleById(articleId); article.setCount(article.getCount()+1); articleService.updateCount(article); Article nextArticle = articleService.getNextArticleById(articleId); Article beforeArticle = articleService.getBeforeArticleById(articleId); getRequest().setAttribute("article", article); getRequest().setAttribute("nextArticle", nextArticle); getRequest().setAttribute("beforeArticle", beforeArticle); return SUCCESS; }
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。