博客的关键字,上一篇,下一篇的功能,添加分享的链接功能实现 运用了Spring框架mybatis框架 (十)

先看下整体页面效果
在这里插入图片描述

1.链接功能的实现 在bshare网站上找到相关的代码贴到对应的位置上就可以了

<div class="blog_share">
		   <div class="bshare-custom"><a title="分享到QQ空间" class="bshare-qzone"></a><a title="分享到新浪微博" class="bshare-sinaminiblog"></a><a title="分享到人人网" class="bshare-renren"></a><a title="分享到腾讯微博" class="bshare-qqmb"></a><a title="分享到网易微博" class="bshare-neteasemb"></a><a title="更多平台" class="bshare-more bshare-more-icon more-style-addthis"></a><span class="BSHARE_COUNT bshare-share-count">0</span></div><script type="text/javascript" charset="utf-8" src="http://static.bshare.cn/b/buttonLite.js#style=-1&amp;uuid=&amp;pophcol=2&amp;lang=zh"></script><script type="text/javascript" charset="utf-8" src="http://static.bshare.cn/b/bshareC0.js"></script>
</div>

2关键字的实现
blogController

Blog blog=blogService.findById(id);
		String keyWords=blog.getKeyWord();
		if(StringUtil.isNotEmpty(keyWords)) {
			String arr[]=keyWords.split(" ");
			mav.addObject("keyWords",StringUtil.filterWhite(Arrays.asList(arr)));	
		}
		else {
			mav.addObject("keyWords",null);
		}

视图view.jsp中的实现

<div class="blog_keyWord">
		    <font><strong>关键字:</strong></font>
		    <c:choose>
		         <c:when test="${keyWords==null }">
		             &nbsp;&nbsp;</c:when>
		         <c:otherwise>
		             <c:forEach var="keyWord" items="${keyWords }">
		                &nbsp;&nbsp;&nbsp;&nbsp;<a href="#" target="_blank"> ${keyWord }</a>&nbsp;&nbsp;
		             </c:forEach>
		         </c:otherwise>
		    </c:choose>
		</div>

3.上下篇功能的实现
BlogDao

/**
	 * 获取上一篇博客
	 * @param id
	 * @return
	 */
	public Blog getLastBlog(Integer id);
	
	
	/**
	 * 获取下一篇博客
	 * @param id
	 * @return
	 */
	public Blog getNextBlog(Integer id);
	

BlogService

public Blog getLastBlog(Integer id);
	
public Blog getNextBlog(Integer id);

BlogMapper.xml

<select id="getLastBlog" parameterType="Integer" resultMap="BlogResult">
		SELECT * FROM t_blog WHERE id&lt;#{id} ORDER BY id DESC LIMIT 1;
	</select>
	
	<select id="getNextBlog" parameterType="Integer" resultMap="BlogResult">
		SELECT * FROM t_blog WHERE id&gt;#{id} ORDER BY id ASC LIMIT 1;
	</select>

BlogServiceImpl

public Blog getLastBlog(Integer id) {
		
		return blogDao.getLastBlog(id);
	}


	public Blog getNextBlog(Integer id) {
		
		return blogDao.getNextBlog(id);
	}

BlogController

package com.java1234.controller;

import java.util.Arrays;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.java1234.entity.Blog;
import com.java1234.service.BlogService;
import com.java1234.util.StringUtil;

/**
 * 博客Controller层
 * @author Administrator
 *
 */
@Controller
@RequestMapping("/blog")
public class BlogController {

	@Resource
	private BlogService blogService;
	
	/**
	 * 请求博客详细信息
	 * @param id
	 * @param request
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/articles/{id}")
	public ModelAndView details(@PathVariable("id") Integer id,HttpServletRequest request)throws Exception{
		ModelAndView mav=new ModelAndView();
		Blog blog=blogService.findById(id);
		String keyWords=blog.getKeyWord();
		if(StringUtil.isNotEmpty(keyWords)) {
			String arr[]=keyWords.split(" ");
			mav.addObject("keyWords",StringUtil.filterWhite(Arrays.asList(arr)));	
		}
		else {
			mav.addObject("keyWords",null);
		}
		mav.addObject("blog",blog);
		blog.setClickHit(blog.getClickHit()+1);
		blogService.update(blog);
		mav.addObject("pageCode",this.getUpAndDownPageCode(blogService.getLastBlog(id), blogService.getNextBlog(id),request.getServletContext().getContextPath()));
		mav.addObject("pageTitle", blog.getTitle()+"java开源博客系统");
		mav.addObject("mainPage", "foreground/blog/view.jsp");
		mav.setViewName("mainTemp");
		return mav;
	}
	
	/**
	 * 获取博客上下篇
	 * @param lastBlog
	 * @param nextBlog
	 * @param projectContext
	 * @return
	 */
	private String getUpAndDownPageCode(Blog lastBlog,Blog nextBlog,String projectContext) {
		StringBuffer pageCode=new StringBuffer();
		if(lastBlog==null||lastBlog.getId()==null) {
			pageCode.append("<p>上一篇:  没有了</p>");
		}else {
			pageCode.append("<p>上一篇:<a href='"+projectContext+"/blog/articles/"+lastBlog.getId()+".html'>"+lastBlog.getTitle()+"</a></p>");
		}
		if(nextBlog==null||nextBlog.getId()==null) {
			pageCode.append("<p>下一篇: 没有了</p>");
		}else {
			pageCode.append("<p>下一篇:<a href='"+projectContext+"/blog/articles/"+nextBlog.getId()+".html'>"+nextBlog.getTitle()+"</a></p>");
		}
		
		
		return pageCode.toString();
		
	}
}

view.jsp完整视图实现

<script type="text/javascript" src="${pageContext.request.contextPath}/static/ueditor/third-party/SyntaxHighlighter/shCore.js"></script>
<link rel="stylesheet" href="${pageContext.request.contextPath}/static/css/blog.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/static/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css">
<script type="text/javascript">
    SyntaxHighlighter.all();
</script>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<style type="text/css">
   .data_list .blog_title{
        text_align:center;
   }
   
</style>

<div class="data_list">
	<div class="data_list_title">
		<img src="/static/images/blog_show_icon.png"/>
		博客信息
	</div>
	<div>
		<div class="blog_title"><h3 style="text_align:center;"><strong>${blog.title }</strong></h3></div>
		<div class="blog_share">
		   <div class="bshare-custom"><a title="分享到QQ空间" class="bshare-qzone"></a><a title="分享到新浪微博" class="bshare-sinaminiblog"></a><a title="分享到人人网" class="bshare-renren"></a><a title="分享到腾讯微博" class="bshare-qqmb"></a><a title="分享到网易微博" class="bshare-neteasemb"></a><a title="更多平台" class="bshare-more bshare-more-icon more-style-addthis"></a><span class="BSHARE_COUNT bshare-share-count">0</span></div><script type="text/javascript" charset="utf-8" src="http://static.bshare.cn/b/buttonLite.js#style=-1&amp;uuid=&amp;pophcol=2&amp;lang=zh"></script><script type="text/javascript" charset="utf-8" src="http://static.bshare.cn/b/bshareC0.js"></script>
		</div>
		<div class="blog_info">
			发布时间:『 <fmt:formatDate value="${blog.releaseDate }" type="date" pattern="yyyy-MM-dd HH:mm"/>&nbsp;&nbsp;博客类别:${blog.blogType.typeName }&nbsp;&nbsp;阅读(${blog.clickHit }) 评论(${blog.replyHit })
		</div>
		<div class="blog_content">
		${blog.content }
		</div>
		<div class="blog_keyWord">
		    <font><strong>关键字:</strong></font>
		    <c:choose>
		         <c:when test="${keyWords==null }">
		             &nbsp;&nbsp;</c:when>
		         <c:otherwise>
		             <c:forEach var="keyWord" items="${keyWords }">
		                &nbsp;&nbsp;&nbsp;&nbsp;<a href="#" target="_blank"> ${keyWord }</a>&nbsp;&nbsp;
		             </c:forEach>
		         </c:otherwise>
		    </c:choose>
		</div>
		<div class="blog_lastAndNextPage">
		     ${pageCode }
		</div>
	</div>
</div>

部分css的实现盒模型

.data_list{
	border: 1px solid #E5E5E5;
	padding: 10px;
	background-color: #FDFDFD;
	margin-top: 0px;
	margin-bottom: 10px;
}

.data_list .data_list_title{
	font-size: 15px;
	font-weight: bold;
	border-bottom: 1px solid #E5E5E5;
	padding-bottom: 10px;
	padding-top: 5px;
}

.data_list .data_list_title img{
	margin-top: 1px;
	vertical-align: top;
}

.data_list .datas ul {
	list-style-type: none;
	padding-left: 15px;
}

.data_list .datas ul li {
	margin-top: 10px;
}

.data_list .data_list_title .datas{
	padding: 5px;
}

.datas .date ,.datas .title {
	display:block;
	line-height: 1.5;
	font-family: Verdana,Arial,Helvetica,sans-serif;
	padding-bottom: 5px;
	font-size: 14px;
}


.datas .date a{
	color: #935A32;
	font-weight: bold;
}

.datas .title a{
	  color: #333;
	  font-weight: bold;
}

.datas .summary{
	display:block;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	line-height: 19.5px;
	padding-top: 5px;
	font-size: 13px;
	color: rgb(0, 0, 0);
}

.datas .img{
	display:block;
	clear:both;
}

.datas img{
	padding:10px;
	padding-left:0px;
	max-height: 150px;
	max-width:300px;
}

.datas .info{
	display:block;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	line-height: 18px;
	float: right;
	font-size: 12px;
}

.data_list .user_image{
	text-align: center;
}

.data_list .user_image img{
	padding-top:10px;
	width: 200px;;
	height: 250px;;
}

.data_list .nickName , .data_list .userSign{
	text-align: center;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值