struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cacodemon79 <cacode...@inwind.it>
Subject logic:iterate problem: NullPointerException
Date Sat, 06 Sep 2008 18:12:55 GMT

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: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message