Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / July 2006

Tip: Looking for answers? Try searching our database.

hurry!struts collections error when put checkbox

Thread view: 
gmjing@headwaycn.com - 06 Jul 2006 02:07 GMT
i use struts collection,it work fine.but it happen errors when i put
checkbox in every row.the errors like this:

javax.servlet.ServletException: Getter for property ids[0] threw
exception: java.lang.NullPointerException

org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContext-Impl.java:825)

org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextIm-pl.java:758)

org.apache.jsp.queryusera_jsp._jspService(queryusera_jsp.java:110)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
       javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:-324)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
       javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1-069)

org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProce-ssor.java:455)

org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279-)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)

org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
       javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
       javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

//jsp file
<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-layout.tld" prefix="layout" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@page import="com.yourcompany.struts.form.*,java.util.ArrayList"%>

<html>
       <head>
               <title>JSP for UserForm form </title>
               <layout:skin/>

       </head>
       <body>
               <html:form action="/user">
                       <html:hidden property="oper" value="delUser"/>
                       <html:submit/><html:cancel/>

                       <layout:pager maxPageItems="20">
                       <layout:collection title="aaassss"
                  name="results"
                  styleClass="FORM" styleClass2="FORM2"
selectName="ids" selectProperty="name" selectType="checkbox">
                  <layout:collectionItem title="a" property="name"
sortable="true"/>
                  <layout:collectionItem title="b" property="dep"
sortable="true"/>
                  <layout:collectionItem title="c" property="age"
sortable="true"/>
                  <layout:collectionItem title="d" property="desc"
sortable="true"/>
                       </layout:collection>
                       </layout:pager>

               </html:form>
       </body>
</html>

//struts---Form Class
public class UserForm extends ActionForm {
       private String[] ids;
       private String age;
       private String dep;
       private String name;
       private String desc;

       public String[]getIds() {
               return ids;
       }

       public void setIds(String[]ids) {
               this.ids = ids;
       }

       public String getIds(int index) {
               return this.ids[index];
       }

       public void setIds(int index, String id) {
               this.ids[index] = id;
       }

       public ActionErrors validate(
               ActionMapping mapping,
               HttpServletRequest request) {
               return null;
       }

       public void reset(ActionMapping mapping, HttpServletRequest
request) {

       }

       public String getAge() {
               return age;
       }

       public void setAge(String age) {
               this.age = age;
       }

       public String getDep() {

               return dep;
       }

       public void setDep(String dep) {
               this.dep = dep;
       }

       public String getName() {
               return name;
       }

       public void setName(String name) {
               this.name = name;

       }

       public String getDesc() {
               return desc;
       }

       public void setDesc(String desc) {
               this.desc = desc;
       }

}

//struts---Action Class
public class UserAction extends DispatchAction {

       public ActionForward qryUser(
               ActionMapping mapping,
               ActionForm form,
               HttpServletRequest request,
               HttpServletResponse response) {
               UserForm userForm = (UserForm) form;

               ArrayList  l_users = new ArrayList ();

               for(int i=0;i<300;i++)
               {
                       UserForm a = new UserForm();
                       a.setAge("12"+i);
                       a.setDep("aaa"+i);
                       a.setDesc("aaaaaaa"+i);
                       a.setName("aaaa"+i);
                       l_users.add(a);
               }
               request.setAttribute("results", l_users);

               return mapping.findForward("qrysuc");
       }
Danno - 06 Jul 2006 04:37 GMT
Try:

public class UserForm extends ActionForm {
       private String[] ids = new String[10]; //put whatever number
you want
       private String age;
       private String dep;
       private String name;
       private String desc;

       public String[]getIds() {
               return ids;
       }

       public void setIds(String[]ids) {
               this.ids = ids;
       }
 ...

Or :

public class UserForm extends ActionForm {
       private String[] ids;
       private String age;
       private String dep;
       private String name;
       private String desc;

       public UserForm() {
          //default no-arg constructor
          ids = new String[10];  //put whatever number you want
       }
       public String[]getIds() {
               return ids;
       }

       public void setIds(String[]ids) {
               this.ids = ids;
       }


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.