Hi to all.
I have a problem with a logic:iterate tag. I'm using Struts 1.3.
I have to populate a select with data read from db (by invoking the first
Action). When a select option is selected in the jsp, I have to invoke a
second Action (on the same jsp page) which has to perform some operations
and remember the previous selected option (in the select).
I show you my source code for semplicity.

Here is my ActionForm.
*******************************
CreazioneProfiloUtenteForm.java
*******************************
public class CreazioneProfiloUtenteForm extends ActionForm
{
        private String sport;
        
        public ActionErrors validate(ActionMapping mapping,HttpServletRequest
request)
        {
                return null;
        }
        
        public void reset(ActionMapping mapping, HttpServletRequest request)
        {
                
        }

        public String getSport() {
                return sport;
        }

        public void setSport(String sport) {
                this.sport = sport;
        }

}

First, the ToCreazioneProfiloUtenteAction action is invoked. This action
reads data from db and insert them in the ArrayList 'listaSport'; at the
end, this ArrayList is setted in the request.
***********************************
ToCreazioneProfiloUtenteAction.java
***********************************
public class ToCreazioneProfiloUtenteAction extends Action
{
        
        public ActionForward execute(ActionMapping mapping, ActionForm
form,HttpServletRequest request, HttpServletResponse response)
        {
...
...
                        ArrayList listaSport = null;
                        listaSport = new ArrayList();
                        listaSport.add(new
org.apache.struts.util.LabelValueBean(defaultOptionSelect,""));
                        while(db.getResultSet().next())
                                listaSport.add(new
org.apache.struts.util.LabelValueBean(db.getResultSet().getString("nomeSport"),db.getResultSet().getString("idSport")));
                        request.setAttribute("listaSport", listaSport);
...
...
        }
}

Then creazioneProfiloUtente.jsp is invoked. I have a select 'sport' that
reads the collections in the ArrayList 'listaSport'. Then, I have to store
in hidden fields the values of the 'listaSport' arraylist in order to avoid,
in the second Action, to re-access to db to read the same values. In order
to do so, I use logic:iterate but I have problems with it. I confirm that if
I delete from source code the tag logic:iterate, all works well.
**************************
creazioneProfiloUtente.jsp
**************************
...
...
<html:select property="sport" styleId="sport"
o_nchange="javascript:submitForm('creazioneProfiloUtenteForm','caricamentoRuoliAttributiSport.do')">
                                                                
<html:optionsCollection name="listaSport" />
                                                        </html:select>
                                                        
                                                        <logic:iterate 
id="sport" name="listaSport">
                                                                <html:hidden 
name="sport" property="label" indexed="true" />
                                                                <html:hidden 
name="sport" property="value" indexed="true" />
                                                        </logic:iterate>
...
...

This is the second Action, which should be invoked when a select option is
selected by user. Unfortunately, this Action is never accessed because I got
a java NullPointerException before.
*****************************************
CaricamentoRuoliAttributiSportAction.java
*****************************************
public class CaricamentoRuoliAttributiSportAction extends Action
{       
        public ActionForward execute(ActionMapping mapping, ActionForm
form,HttpServletRequest request, HttpServletResponse response)
        {
System.out.println("XXXXXXXXXXXXXXXXX");
        }
}

*********
EXCEPTION
*********
GRAVE: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
        at
org.apache.commons.beanutils.PropertyUtilsBean.getIndexedProperty(PropertyUtilsBean.java:427)
        at
org.apache.commons.beanutils.PropertyUtilsBean.getIndexedProperty(PropertyUtilsBean.java:340)
        at
org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:684)
        at
org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715)
        at
org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:884)
        at
org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
        at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
        at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:467)
        at
org.apache.struts.chain.commands.servlet.PopulateActionForm.populate(PopulateActionForm.java:50)
        at
org.apache.struts.chain.commands.AbstractPopulateActionForm.execute(AbstractPopulateActionForm.java:60)
        at
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
        at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
        at
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
        at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
        at
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
        at 
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:856)
        at
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
        at 
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
        at java.lang.Thread.run(Unknown Source)

*****************
STRUTS-CONFIG.XML
*****************
...
...
<struts-config>
  <form-beans >
        <form-bean name="creazioneProfiloUtenteForm"
type="it.sfidiamoci.struts.form.CreazioneProfiloUtenteForm" />

  </form-beans>
...
...
<action-mappings >
<action
      attribute="creazioneProfiloUtenteForm"
      name="creazioneProfiloUtenteForm"
      path="/toCreazioneProfiloUtente"
      scope="request"
      type="it.sfidiamoci.struts.action.ToCreazioneProfiloUtenteAction" >
                <forward name="toCreazioneProfiloUtenteOk"
path="/creazioneProfiloUtente.jsp" />
                <forward name="toCreazioneProfiloUtenteErrore"
path="/creazioneProfiloUtente.jsp" />
        </action>
    <action
      attribute="creazioneProfiloUtenteForm"
      input="/creazioneProfiloUtente.jsp"
      name="creazioneProfiloUtenteForm"
      path="/caricamentoRuoliAttributiSport"
      scope="request"
     
type="it.sfidiamoci.struts.action.CaricamentoRuoliAttributiSportAction">
      <forward name="caricamentoRuoliAttributiSportOk"
path="/creazioneProfiloUtente.jsp" />
      <forward name="caricamentoRuoliAttributiSportErrore"
path="/creazioneProfiloUtente.jsp" />
    </action>
    
        
  </action-mappings>
...
...

I can't understand where is the problem.
Can you help me?

Thanks to all in advance.

Bye bye.
-- 
View this message in context: 
http://www.nabble.com/logic%3Aiterate-problem%3A-NullPointerException-tp19349501p19349501.html
Sent from the Struts - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to