还是麻烦在文章标签(类别)上,保存文章时要先从用户实例中取得所有类别,然后通过request传给文章发布页面. 然后删除的时候要注意先删掉该文章的回复信息,不然这些回复信息数据就很难管理了.
一:文章添加页面
标题和正文都是text
文章类别是从用户实例中取得的数组,用下拉菜单显示出来
<table width="550" height="367" border="1" cellpadding="1" cellspacing="1" bordercolor="#FFFFFF" bgcolor="EBF1FD">
<s:form action="articleInfo_article_add">
<tr>
<td width="80" height="30">文章标题:</td>
<td width="470" bgcolor="#FFFFFF"><s:textfield name="title"/></td>
</tr>
<tr>
<td height="30">文章类别:</td>
<td bgcolor="#FFFFFF"><s:select name="typeName" list="#request.types" /></td>
</tr>
<tr>
<td height="270">文章内容:</td>
<td bgcolor="#FFFFFF"><s:textarea name="content" cols="70" rows="20"/></td>
</tr>
<tr>
<td height="30"> </td>
<td><s:submit value=" 添加文章 "/><s:hidden name="author" value="%{#session.account}"/></td>
</tr>
</s:form>
</table> <br>
二:转向文章发布的action
在这个里边把类别组装成数组
// 转向添加文章的页面,这里需要将文章的类别转换成数组
public String forwardAddArticle() {
String account = (String) request.getSession().getAttribute("account");
hql = "from UserInfo where account = '" + account + "'";
UserInfo userInfo = (UserInfo) objectDao.queryFrom(hql);
String type = userInfo.getArtType();
String types[] = type.split(",");
request.setAttribute("types", types);
这样转成数组,写进request
三:记录发布时间
this.articleInfo.setSendTime(this.dateTimeFormat);
if (objectDao.saveT(articleInfo)) {
request.setAttribute("result", "添加文章成功!");
} else {
四:文章的删除
这里边用到回复信息了, 后边再说
public String article_delete() {
Integer id = new Integer(request.getParameter("id"));
先删除该文章下的所有回复信息
String hql1 = "from ReArticleInfo where re_id =" + id + "";
ObjectDao<ReArticleInfo> objectDao1 = new ObjectDao<ReArticleInfo>();
List<ReArticleInfo> list = objectDao1.queryList(hql1);
for (ReArticleInfo reArticleInfo : list) {
objectDao1.deleteT(reArticleInfo);
}
再删掉文章实例
hql = "from ArticleInfo where id =" + id;
objectDao = new ObjectDao<ArticleInfo>();
articleInfo = objectDao.queryFrom(hql);
boolean flag = objectDao.deleteT(articleInfo);