基于SSH(spring+struts2+hibernate)的新闻系统(三)
上次我们学习如何简单的使用ssh框架,利用ssh框架进行了一个简单的查询,这次我们学习如何实现增删改查其他三个功能。
分类管理
一、 增加分类
前面我们已经建立了Category这个实体,下面我们可以之间进行写Service,现在CategoryService接口中增加一个方法,然后在CategoryServiceImpl类中去实现这个方法,在实现这个方法是,我们是直接使用前面注入的dao来实现的,可以看出,我们只要提供一个Categeory的实
体进去,就能够调用该方法。
public interface CategoryService {
public List list();
public void addCategory(Category category);
}
@Service
public class CategoryServiceImpl implements CategoryService{
@Autowired DAOImpl dao;
@Override
public List list() {
// TODO Auto-generated method stub
DetachedCriteria dc = DetachedCriteria.forClass(Category.class);
dc.addOrder(Order.desc("id"));
return dao.findByCriteria(dc);
}
@Override
public void addCategory(Category category) {
// TODO Auto-generated method stub
dao.save(category);
}
}
然后,在CategoryAction中创建一个@Action(“addcategory”)对应一个add方法,然后在前端页面去调用这个action就可以实现这个方法。在这里我们先调用category.getId()方法,这是我们增加这个实体的id自动增长需要的,然后可以在控制台打印出来我们的category分类,最后通过categoryService的addCategory()方法来实现添加功能。然后返回一个字符串,然后通过@Result来进行视图的实现
@Action("addcategory")
public String add(){
category.getId();
//System.out.println(category);
categoryService.addCategory(category);
return "categorylistpage";
}
这里我们在进行result映射时与查询是不一样的,我们将它返到"categorylistpage"中,然后通过redirect来进行跳转到listcategory这个action中,这样就可以实现我们添加完成之后,然后页面又跳转回查询分类的页面,这样就将刚才添加的分类也刷新到了页面当中
@Results(
{
/*分类管理*/
@Result(name="categorylist", location="/WEB-INF/jsp/list_category.jsp"),
@Result(name="categorylistpage", type = "redirect", location="/listcategory"),
}
)
然后在自己的前端页面增加一个提交的表单,通过表单来执行action就可以实现增加分类到数据库中,例如下面的简单的表单
<form action="addcategory" method="post" id="addForm" >
<div>
<span class="label label-danger">添加分类</span>
</div>
<div>
<label >分类名称:</label>
<input type="text" id="name" name="category.name" placeholder="**新闻">
</div>
<button type="submit" class="btn btn-primary">添加</button>
</form>
点击添加按钮,如果能够在控制台打印出如下的sql语句就表示成功了。
二、删除分类
删除分类与增加分类类似,我们首先是需要在CategoryService接口中增加方法,然后在CategoryServiceImpl 方法中去实现它。
public interface CategoryService {
public List list();
public void addCategory(Category category);
public void deleteCategoryById(Category category);
}
@Override
public void deleteCategoryById(Category category) {
// TODO Auto-generated method stub
dao.delete(category);
}
接着是要在CategoryAction中创建一个@Action(“deletecategory”)对应一个delete方法,然后在前端页面去调用这个action就可以实现这个方法。
@Action("deletecategory")
public String delete() {
categoryService.deleteCategoryById(category);
return "categorylistpage";
}
然后就可以在前端做一个超链接来调用这个方法
<a deleteLink="true" href="deletecategory?category.id=${cs.id}">删除</a>
当点击这个超链接时,就能够通过分类的ID来删除数据库中的该分类,在控制台能够打印以下的sql语句就表示成功。
三、总结
由于分类的管理比较少,我们一般就不会进行修改(更新)操作,所以就没有进行编写,但是我们会在后面的新闻管理中进行介绍。
学习JAVA的地址(http://how2j.cn?p=58979)