`

基于java web的博客平台(三)

阅读更多

(2)删除文章

<a href="<%=URL%>/ArticleAction.action?action=adminSelectList&typeID=">修改文章</a>要删除文章,我们首先要显示一个文章列表,这样我们就可以知道选择哪一篇文章来删除了。

所以这次给ArticleAction的action是adminSelectList,即获取当前用户的所有文章。我们先看看ArticleAction的excute方法里面对action是adminSelectList的调用哪一个方法的。

public String adminSelectList(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		//获得目前登录的博主对象
		HttpSession session=request.getSession();
		MasterBean masterBean=(MasterBean)session.getAttribute("masterBean");
		//获得博主的id
		int masterID=masterBean.getId();
		ArticleDao articleDao=new ArticleDao();
		//从页面上面获得需要操作的查找的类型
		String strID=request.getParameter("typeID");
		if(strID==null || strID.equals("")){
			strID="-1";
		}
		//把页面获得的string类型的id转换成int型
		int typeID=Common.strToint(strID);
		List articleList=articleDao.queryArticle(typeID,"all");
		request.setAttribute("articleList", articleList);
		String url="/admin/article/ArticleList.jsp";
		return url;
	}

 大致过程如下:

A、我们首先通过session,获取这个当前用户的所有信息,然后得到当前用户id。

B、然后通过articleDao类的queryArticle方法查询出该用户的所写的所有文章。

C、然后把结果存放的request里面,通过setAttribute方法添加”articleList”的属性,request.setAttribute("articleList", articleList);

D、最后跳转到"/admin/article/ArticleList.jsp",显示文章列表。

然后到ArticleList.jsp文件:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8" 
    import="java.util.List,com.MyBlog.common.GLOBALS,com.MyBlog.entity.ArticleBean"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<%String URL=session.getAttribute("url").toString();
  //获取页面传过来的articleList对象
  List<ArticleBean> articleList=(List<ArticleBean>)request.getAttribute("articleList");%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>博客管理——显示所有文章</title>
</head>
<body>
	<!-- 显示所有文章表单设置 -->
	<form action="<%=URL%>/ArticleAction.action" method="post">
		<input type="hidden" name="action" value="adminSelectList">
		<table id="table_form">
			<tr>
				<td>
					<label for="typeID">文章类型ID</label><input id="typeID" type="text" name="typeID">
				</td>
			</tr>
		</table>
		<input type="submit" value="确定">
		<input type="reset" value="重置">
	</form>
	
	<!-- 显示我的文章  -->
	<table id="table_article">
		<tr height="80">
			<td>
				<a href="<%=URL%>/admin/article/ArticleSingle.jsp">【我的文章】</a>
			</td>
			<td align="right">
				<a href="<%=URL%>/admin/article/ArticleSingle.jsp">更多...</a>
			</td>
		</tr>
		<%
			if(articleList.size()==0){
		%>
		<tr height="100">
			<td align="center">
				<li>未查到任何关于该类型的文章!!!</li>
			</td>
		</tr>

		<%
			} else {
				for (int i = 0; i < articleList.size(); i++) {
					ArticleBean articleBean = articleList.get(i);
		%>
		<tr>
			<td  colspan="2">
				<a href="<%=URL%>/ArticleAction.action?action=read&id=<%=articleBean.getId()%>"> 
					<b><%=articleBean.getArticleTitle()%></b>
				</a> [<%=articleBean.getArticleFrom()%>]
			</td>
		</tr>
		
		<tr height="60">
			<td colspan="2" valign="top"><%=articleBean.getArticleCount()%>
			</td>
		</tr>
		
		<tr>
			<td >
				<a href="<%=URL%>/ArticleAction.action?action=read&id=<%=articleBean.getId()%>
				&count=<%=articleBean.getArticleCount()%>">阅读全文
				</a>
			</td>
			
			<td align="right">
				<a href="<%=URL%>/ArticleAction.action?action=modify&id=<%=articleBean.getId()%>">修改文章
				</a>
			</td>
		</tr>
		
		<tr>
			<td align="right" colspan="2">发表时间:<%=articleBean.getArticleFrom()%>|
				评论:| 阅读:<%=articleBean.getArticleCount()%>次
			</td>
		</tr>
		
		<tr>
			<td align="right" colspan="2">
				<a href="<%=URL%>/ArticleAction.action?action=delete&id=<%=articleBean.getId()%>">删除文章
				</a>
			</td>
		</tr>
		
		
		
		<tr height="1">
			<td background="<%=URL%>/images/front/line.jpg" colspan="2"></td>
		</tr>
		<%
			}
			}
		%>
	</table>
	
</body>
</html>

在ArticleList.jsp文件里,我还是通过request获得已经存在request里面的文章。List<ArticleBean> articleList=(List<ArticleBean>)request.getAttribute("articleList");

所有的文章存在一个List里面,我们在ArticleList里面循环显示文章,我们在每个文章后面加一个链接:

<a href="<%=URL%>/ArticleAction.action?action=delete&id=<%=articleBean.getId()%>">删除文章</a>

这个删除文章的操作也是交给ArticleAction,然后传递参数为delete的action,最后再加个这一篇文章的id。我们就把action和id参数传递到ArticleAction,然后删除操作就由ArticleAction处理。

现在我们看ArcitleAction的处理delete的action的函数

	public String deleteArticle(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		ArticleDao articleDao=new ArticleDao();
		ArticleBean articleBean=new ArticleBean();
		String messages="";
		String href="";
		String forward="";
		articleBean.setId(Common.strToint(request.getParameter("id")));
		boolean flag=articleDao.operationArticle("delete", articleBean);
		if(flag){
			String typeID=request.getParameter("typeID");
			messages+="<li>删除文章成功!!!</li>";
			href="<a href='"+this.URL+"/ArticleServlet?action=adminSelectList&typeID="
					+typeID+"'>[继续删除其他文章]</a>";
			forward="/admin/success.jsp";
		}
		else{
			messages+="<li>删除文章失败!!!</li>";
			href="< a href='javascript:window.history.go(-1)'>[返回]</a>";
			forward="/admin/error.jsp";
		}
		request.setAttribute("messages", messages);
		request.setAttribute("href", href);
		String url=this.adminSelectList(request, response);
		return url;
	}

A、先创建一个articleBean,给这个articleBean设置传过来的那个id。

B、把这个articleBean传入,由articleDao执行删除操作。

根据articleDao的operationArticle函数返回值,判断是否成功删除,若成功,跳回ArticleList,String url=this.adminSelectList(request, response),我们是先执行一次查询文章列表再返回。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics