日期:2014-05-18  浏览次数:20757 次

关于struts+hibernate中的查询和删除问题
请教个问题:

      在一个jsp中我实现查询和删除功能,即查询之后   把查询显示在一个列表里,点击复选框选择要删除的记录!   基于struts+hibernate     怎么实现?谢谢(主要是action那怎么用)

  问:可否使用一个form来实现. 或者加个动态form.

谢谢各位大虾!!!感激///


------解决方案--------------------
你需要用checkbox的集合来记录你的主键id。如果有分页就需要在session中记录这个集合。

可以考虑使用ajax来给checkbox集合增加或减少id。

例如你在session中定义了一个Collection col;
然后每次点击某个checkbox的时候,就激发一个javascript来调用ajax,完成对集合的add和remove。

当点击删除按钮时,就可以循环session中的这个集合,得到id,来删除相应的记录。
------解决方案--------------------
在form中设置该属性的数组 即可获取到checkbox的多选值
------解决方案--------------------
给你一段我用过的程序,看懂之后,依葫芦画瓢就OK了.
这部分是struts的Action根据url所带的参数action是 "add/edit/delete "分别调用BO(就是业务BEAN,负责操作数据库的)里的方法来干活.
最后导航到需要的页面去.
public class VideoInfoAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
//这里进行权限的判断
HttpSession session = request.getSession();
//这里对用户合法性进行校验
ReturnInfo retValiate = OperatorRightBO.validate(request);
User user = null;

if(retValiate != null && retValiate.isFlag()){
user = (User)session.getAttribute(User.SESSION_KEY);
}else{
//校验没有通过,返回到一个指定也页面
FileLog.debugLog( "validatesesson return= " + retValiate.getInfo());
return mapping.findForward( "loginFaile ");
}

VideoInfoFormBean formbean = (VideoInfoFormBean)form;
String action = formbean.getAction();


if(action !=null && action.equals( "videolist ")){//视频资源树
VideoInfoBo bo = new VideoInfoBo();
request.setAttribute( "classtree ",bo.getInfoCheckTreeScript());
return mapping.findForward( "classlist ");
}else if(action !=null && action.equals( "showaddview ")){//显示增加页面
request.setAttribute( "info ",WordBo.getGameId());
formbean.setParent_code(formbean.getId());
return mapping.findForward( "addview ");
}else if(action !=null && action.equals( "addinfo ")){//增加图片
ResourceBundle rb = ResourceBundle.getBundle( "webpage ");
String address = rb.getString( "page.videoinfo ");//获取服务器存放视频路径
String top = rb.getString( "top.video ");
VideoInfoBo bo = new VideoInfoBo();
ReturnInfo reinfo = bo.addPhotoInfo(address,top,formbean,user);
if(reinfo.isFlag()){
request.setAttribute( "url ", "VideoInfoAction.do?action=videolist ");
request.setAttribute( "info ", "增加视频成功! ");
return mapping.findForward( "success ");
}else{
request.setAttribute( "info ",reinfo.getInfo());
return mapping.findForward( "fail ");
}
}else if(action !=null && action.equals( "geticon ")){//显示图标树
String id = null;
if(formbean.getIcon() != null && formbean.getIcon().length() > 0)
id = formbean.getIcon();

PhotoInfoBo bo = new PhotoInfoBo();
request.setAttribute( "classtree ",bo.getInfoCheckTreeScript(id));