- 点击类别出现相应的内容 关于博主 本站源码下载
- BlogDao list getTotal方法需要用到
- BlogMap list方法需要改变查询语句 getTotal方法
- IndexController 加上相应的typeID@RequestParam(value=“releaseDateStr”)注解进行取值
将相应的typeIdsairu其中
map.put(“typeId”,typeId);
map.put(“releaseDateStr”,releaseDateStr); - mainTemp.jsp 修改 标签
- RUN localHost:8080 修改server.xml因为缩略图显示的问题
BlogDao
package com.java1234.dao;
import java.util.List;
import java.util.Map;
import com.java1234.entity.Blog;
/**
* 博客Dao
* @author Lenovo
*
*/
public interface BlogDao {
/**
* 根据日期分组查寻
* @return
*/
public List<Blog> countList();
/**
* 分页查询博客
* @param map
* @return
*/
public List<Blog> list(Map<String,Object> map);
/**
* 获取总记录数
* @param map
* @return
*/
public Long getTotal(Map<String,Object> map);
/**
* 根据Id查找博客实体
* @param id
* @return
*/
public Blog findById(Integer id);
/**
* 更新博客信息
* @param blog
* @return
*/
public Integer update(Blog blog);
/**
* 获取上一篇博客
* @param id
* @return
*/
public Blog getLastBlog(Integer id);
/**
* 获取下一篇博客
* @param id
* @return
*/
public Blog getNextBlog(Integer id);
}
BlogMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.java1234.dao.BlogDao">
<resultMap type="Blog" id="BlogResult">
<result property="id" column="id"/>
<result property="title" column="title"/>
<result property="summary" column="summary"/>
<result property="releaseDate" column="releaseDate"/>
<result property="clickHit" column="clickHit"/>
<result property="replyHit" column="replyHit"/>
<result property="content" column="content"/>
<result property="keyWord" column="keyWord"/>
<association property="blogType" column="typeId" select="com.java1234.dao.BlogTypeDao.findById"></association>
</resultMap>
<select id="countList" resultMap="BlogResult">
SELECT DATE_FORMAT(releaseDate,'%Y年%m月') AS releaseDateStr,COUNT(*) AS blogCount FROM t_blog GROUP BY DATE_FORMAT(releaseDate,'%Y年%m月') ORDER BY DATE_FORMAT(releaseDate,'%Y年%m月') DESC;
</select>
<select id="list" parameterType="Map" resultMap="BlogResult">
select * from t_blog
<where>
<if test="typeId!=null and typeId!='' ">
and typeId=#{typeId}
</if>
<if test="releaseDateStr!=null and releaseDateStr!='' ">
and DATE_FORMAT(releaseDate,'%Y年%m月')=#{releaseDateStr}
</if>
</where>
order by releaseDate desc
<if test="start!=null and size!=null">
limit #{start},#{size}
</if>
</select>
<select id="getTotal" parameterType="Map" resultType="Long">
select count(*) from t_blog
<where>
<if test="typeId!=null and typeId!='' ">
and typeId=#{typeId}
</if>
<if test="releaseDateStr!=null and releaseDateStr!='' ">
and DATE_FORMAT(releaseDate,'%Y年%m月')=#{releaseDateStr}
</if>
</where>
</select>
<select id="findById" parameterType="Integer" resultMap="BlogResult">
select * from t_blog where id=#{id}
</select>
<update id="update" parameterType="Blog">
update t_blog
<set>
<if test="clickHit!=null">
clickHit=#{clickHit},
</if>
</set>
where id=#{id}
</update>
<select id="getLastBlog" parameterType="Integer" resultMap="BlogResult">
SELECT * FROM t_blog WHERE id<#{id} ORDER BY id DESC LIMIT 1;
</select>
<select id="getNextBlog" parameterType="Integer" resultMap="BlogResult">
SELECT * FROM t_blog WHERE id>#{id} ORDER BY id ASC LIMIT 1;
</select>
</mapper>
BlogService
package com.java1234.service;
import java.util.List;
import java.util.Map;
import com.java1234.entity.Blog;
/**
* 博客service接口
* @author Lenovo
*
*/
public interface BlogService {
/**
* 根据日期查寻分类
* @return
*/
public List<Blog> countList();
/**
* 分页查询博客信息
* @param map
* @return
*/
public List<Blog> list(Map<String,Object> map);
/**
* 查寻总记录数
* @param map
* @return
*/
public Long getTotal(Map<String,Object> map);
/**
* 根据Id查找博客实体
* @param id
* @return
*/
public Blog findById(Integer id);
/**
* 更新博客信息
* @param blog
* @return
*/
public Integer update(Blog blog);
public Blog getLastBlog(Integer id);
public Blog getNextBlog(Integer id);
}
BlogServiceImpl
package com.java1234.service.impl;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.java1234.dao.BlogDao;
import com.java1234.entity.Blog;
import com.java1234.service.BlogService;
/**
* 博客service实现类
* @author Lenovo
*
*/
@Service("blogService")
public class BlogServiceImpl implements BlogService {
@Resource
private BlogDao blogDao;
/**
* 根据日期分类查询博客
*/
public List<Blog> countList() {
return blogDao.countList();
}
public List<Blog> list(Map<String, Object> map) {
return blogDao.list(map);
}
public Long getTotal(Map<String, Object> map) {
return blogDao.getTotal(map);
}
public Blog findById(Integer id) {
return blogDao.findById(id);
}
public Integer update(Blog blog) {
return blogDao.update(blog);
}
public Blog getLastBlog(Integer id) {
return blogDao.getLastBlog(id);
}
public Blog getNextBlog(Integer id) {
return blogDao.getNextBlog(id);
}
}
IndexController
package com.java1234.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.java1234.entity.Blog;
import com.java1234.entity.PageBean;
import com.java1234.service.BlogService;
import com.java1234.util.PageUtil;
import com.java1234.util.StringUtil;
/**
* 主页Contrller
* @author Administrator
*
*/
@Controller
@RequestMapping("/")
public class IndexController {
@Resource
private BlogService blogService;
/**
* 请求主页
* @return
*/
@RequestMapping("/index")
public ModelAndView index(@RequestParam(value="page",required=false)String page,@RequestParam(value="typeId",required=false)String typeId,@RequestParam(value="releaseDateStr",required=false)String releaseDateStr,HttpServletRequest request)throws Exception{
ModelAndView mav=new ModelAndView();
if(StringUtil.isEmpty(page)){
page="1";
}
PageBean pageBean=new PageBean(Integer.parseInt(page),10);
Map<String,Object> map=new HashMap<String,Object>();
map.put("start", pageBean.getStart());
map.put("size", pageBean.getPageSize());
map.put("typeId", typeId);
map.put("releaseDateStr", releaseDateStr);
List<Blog> blogList=blogService.list(map);
for(Blog blog:blogList){
List<String> imageList=blog.getImageList();
String blogInfo=blog.getContent();
Document doc=Jsoup.parse(blogInfo);
Elements jpgs=doc.select("img[src$=.jpg]");
for(int i=0;i<jpgs.size();i++){
Element jpg=jpgs.get(i);
imageList.add(jpg.toString());
if(i==2){
break;
}
}
}
mav.addObject("blogList", blogList);
StringBuffer param=new StringBuffer();
if(StringUtil.isNotEmpty(typeId)){
param.append("typeId="+typeId+"&");
}
if(StringUtil.isNotEmpty(releaseDateStr)){
param.append("releaseDateStr="+releaseDateStr+"&");
}
mav.addObject("pageCode", PageUtil.genPagination(request.getContextPath()+"/index.html", blogService.getTotal(map), Integer.parseInt(page), 10, param.toString()));
mav.addObject("pageTitle", "java开源博客系统");
mav.addObject("mainPage", "foreground/blog/list.jsp");
mav.setViewName("mainTemp");
return mav;
}
/**
* 源码下载
* @return
* @throws Exception
*/
@RequestMapping("/download")
public ModelAndView download()throws Exception{
ModelAndView mav=new ModelAndView();
mav.addObject("pageTitle", "本站源码下载页面_java开源博客系统");
mav.addObject("mainPage", "foreground/system/download.jsp");
mav.setViewName("mainTemp");
return mav;
}
}
新建相应的jsp文件以便于后续的跳转
mainTemp.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="${pageContext.request.contextPath}/static/bootstrap3/css/bootstrap.min.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/static/bootstrap3/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/static/css/blog.css">
<script src="${pageContext.request.contextPath}/static/bootstrap3/js/jquery-1.11.2.min.js"></script>
<script src="${pageContext.request.contextPath}/static/bootstrap3/js/bootstrap.min.js"></script>
<title>${pageTitle }-Powered by java1234</title>
<style type="text/css">
body{
padding-top: 10px;
padding-bottom: 40px;
}
</style>
</head>
<body>
<div class="container">
<jsp:include page="/foreground/common/head.jsp"/>
<jsp:include page="/foreground/common/menu.jsp"/>
<div class="row">
<div class="col-md-9">
<jsp:include page="${mainPage }"/>
</div>
<div class="col-md-3">
<div class="data_list">
<div class="data_list_title">
<img src="${pageContext.request.contextPath}/static/images/user_icon.png"/>
博主信息
</div>
<div class="user_image">
<img src="${pageContext.request.contextPath}/static/userImages/${blogger.imageName}"/>
</div>
<div class="nickName">${blogger.nickName}</div>
<div class="userSign">(${blogger.sign})</div>
</div>
<div class="data_list">
<div class="data_list_title">
<img src="${pageContext.request.contextPath}/static/images/byType_icon.png"/>
按日志类别
</div>
<div class="datas">
<ul>
<c:forEach var="blogTypeCount" items="${blogTypeCountList }">
<li><span><a href="${pageContext.request.contextPath}/index.html?typeId=${blogTypeCount.id}">${blogTypeCount.typeName }(${blogTypeCount.blogCount })</a></span></li>
</c:forEach>
</ul>
</div>
</div>
<div class="data_list">
<div class="data_list_title">
<img src="${pageContext.request.contextPath}/static/images/byDate_icon.png"/>
按日志日期
</div>
<div class="datas">
<ul>
<c:forEach var="blogCount" items="${blogCountList }">
<li><span><a href="${pageContext.request.contextPath}/index.html?releaseDateStr=${blogCount.releaseDateStr}">${blogCount.releaseDateStr }(${blogCount.blogCount })</a></span></li>
</c:forEach>
</ul>
</div>
</div>
<div class="data_list">
<div class="data_list_title">
<img src="${pageContext.request.contextPath}/static/images/link_icon.png"/>
友情链接
</div>
<div class="datas">
<ul>
<c:forEach var="link" items="${linkList }">
<li><span><a href="${link.linkUrl }" target="_blank">${link.linkName }</a></span></li>
</c:forEach>
</ul>
</div>
</div>
</div>
</div>
<jsp:include page="/foreground/common/foot.jsp"/>
</div>
</body>
</html>
文件的架构目录