Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30466013
  • 博文数量: 708
  • 博客积分: 12163
  • 博客等级: 上将
  • 技术积分: 8240
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-04 20:59
文章分类

全部博文(708)

分类: Java

2008-04-14 13:22:08

使用struts进行web开发的时候会面临一个问题,如下:

1. search,然后使用标签显示记录

2. 每一条记录后面增加一个"修改"或者"删除"链接(按钮)

3. 产生的问题:全部或者多条删除将怎么实现?

解决的办法:

使用复选框

使用方法:

1.创建ActionForm:   AForm

public class AForm extends ActionForm {

        private String str[];

        public String[] getStr() {   return str; }

       public void setStr(String[] strings) {   str = strings; }

}

2.创建Action:   GAction

public class GAction extends Action {

   public ActionForward execute(ActionMapping mapping,   ActionForm form,
                                          HttpServletRequest request, HttpServletResponse response)throws Exception {
     

      ActionErrors errors = new ActionErrors();
      ActionForward forward = new ActionForward(); // return value
      AForm aForm = (AForm) form;

      try {   
           int j=ArrayUtils.getLength(aForm.getStr());//使用apache的lang包,注意加上commons-lang.jar
           for (int i = 0; i < j; i++) {
                 System.out.println(aForm.getStr()[i]);
           }
      } catch (Exception e) {}

      return mapping.findForward("success");
   }
}

3. 创建action-mappings和form-beans配置,在struts-config.xml中相应增加:




4. 创建JSP页面a.jsp

<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>


<%java.util.ArrayList list = new java.util.ArrayList();
list.add("First");
list.add("Second");
list.add("Third");
list.add("Fourth");
list.add("Fifth");
pageContext.setAttribute("list", list, PageContext.PAGE_SCOPE);
%>


    :


delete


5. 运行a.jsp

6. 勾选前3个复选框,点击按钮delete,控制台显示如下信息:

    3
    First
    Second
    Third

    接下来我们根据这3条记录id进行删除操作。

javascript操作:
实现全选和全不选
var checkItems = document.getElementsByName("str");//这个name对应中的property
    var i = 0;
    for(i = 0; i < checkItems.length; i++) {
     checkItems[i].checked = document.all.selectControl.checked
    }
 
再如:


    已获得权限部门


       
      


       
      

这样就实现了一个jsp里多个multibox 的全选了

multibox 的property与input里onclick="checkAll(this, 'kk_BlacklistVehicle_UserManage_BMQX_CheckBox')"中的第2个参数对应

multibox 里onclick="checkItem(this, 'mmAll')"中第2个参数与input中的name相对应

2008-4-7 16:41:19 org.apache.catalina.core.ApplicationDispatcher invoke
严重: Servlet.service() for servlet jsp threw exception
javax.servlet.jsp.JspException: You must specify the value attribute or nested tag content
 at org.apache.struts.taglib.html.MultiboxTag.prepareValue(MultiboxTag.java:201)
 at org.apache.struts.taglib.html.MultiboxTag.doEndTag(MultiboxTag.java:170)
.......

这个错误是由于


       
      

如果idbmqx为空,那么就会报异常的,解决办法就是不要让multibox 为空,或者用


      
       
      

     

阅读(4124) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-06-11 15:52:09

不错,相当有帮助

chinaunix网友2009-06-11 15:30:38

2

chinaunix网友2008-07-10 13:56:52

拜读了,相当有帮助