您的位置:首页 > 编程语言 > Java开发

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

2016-03-15 17:14 441 查看

(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),我们是先执行一次查询文章列表再返回。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: