表单数据删除后的页面跳转问题
1、如何删除数据
增删改查四大操作中的删除也和其他操作类似,下面看一下思路:
1)首先找到jsp页面中的点击事件,更改事件为 sysUserGroupAction_delete.do 这种形式
(解释: “_”前面跟着的是Action,后面跟着的是方法,.do后缀是为了让struts2进行拦截调用Action的方法)
2)然后在Action写对应的删除方法,先获取要删除的id,调用业务层,先查询是否有值,有则删除,否则报错。
3)业务层调用dao层进行数据库的操作
4)删除后返回Action的return ,跳转到目标页面
2、删除代码实现:
Action.java层:
public String delete(){
String[] s_ids=request.getParameterValues("ids");
DataTypeProcess d=new DataTypeProcess();
Integer ids[]=d.StringToInt(s_ids);
if(ids!=null){
sysUserGroupService.deleteSysUserGroupByIds(ids);
return "listAction";
}
return null;
}
Service.java层:
/*
* 通过ids批量删除部门信息
*/
@Override
@Transactional(isolation=Isolation.DEFAULT,propagation=Propagation.REQUIRED,readOnly=false)
public void deleteSysUserGroupByIds(Integer... ids) {
sysUserGroupDao.deleteByIds(ids);
}
Dao.java层:
@Override
public void deleteByIds(Serializable... ids) {
if(ids!=null&&ids.length>0){
for(Serializable id:ids){
Object entity=this.getHibernateTemplate().get(entityClass, id);
if(entity!=null){
this.getHibernateTemplate().delete(entity);
}else{
throw new RuntimeException("您要删除的id:"+id+"不存在");
}
}
}
}
以上是关键部分代码
3、关于跳转页面:
我们都知道删除之后,整个表单原来的样子是这样子的:
我们的目标是在删除数据后,仍然停留在此页面,但是这些数据需要呈现为删除后的数据库中的数据:
所以我们的需求是在Action的delete方法结束后,return返回的值是一个list查询的操作。这样就能够重新查询数据库中的数据并进行显示。
我们利用struts.xml的result中的重定向redirectAction来实现:
<!-- 重定向action的路径 -->
<result name="listAction" type="redirectAction">
<param name="actionName">sysUserGroupAction_list</param>
<param name="namespace">/sys</param>
</result>
Action中的返回语句:
return "listAction";
大功告成!
版权声明:本文为博主原创文章,转载请注明出处:http://blog.csdn.net/wearge/article/details/78159605