We're using Struts2, but I was using Struts1/JSTL tags.

I've tried using Struts2 tags and it renders the same HTML anyway.

I've been debugging through the code and it seems to be having a problem
picking up the entry x-work conversion properties. It throws a null pointer
in the log file, then carries on.

When I've got more time, I'll spend it on trying to debug the problem.
Either I've done something stupid, or the project I'm working on has some
configuration that is screwing things up a bit. It's not a project that I've
worked on from the start.




Jishnu Viswanath wrote:
> 
> Re you using struts 2 itself?
> 
> If yes it would look something like this
> <s:iterator value="listName"  status="stat">
>       <input name="someName[<s:property value='stat.index'/>]">
> </s:iterator>
> 
> The code you send looks like struts 1
> Regards,
> 
> Jishnu Viswanath
> 
> Software Engineer
> 
> *(+9180)41190300 - 222(Ext) ll * ( + 91 ) 9731209330ll
> 
> Tavant Technologies Inc.,
> 
> www.tavant.com
> 
> PEOPLE :: PASSION :: EXCELLENCE
> 
> 
> -----Original Message-----
> From: YAQ [mailto:[EMAIL PROTECTED] 
> Sent: Monday, July 14, 2008 4:05 PM
> To: user@struts.apache.org
> Subject: Struts 2 Indexed Properties
> 
> 
> Hi,
> 
> I'm having problem with Struts2 and indexed properties.
> 
> The list in my action is not being updated.
> 
> My JSP is something like:
> 
> <logic:iterate id="coverTypes" name="questionnaireVO.coverTypesList"
> indexId="index">
>       <input  type="hidden"
>                       id="questionnaireInputVO.coverTypesList[<c:out
> value="${index}" />].key"
>                       name="questionnaireInputVO.coverTypesList[<c:out
> value="${index}"
> />].key"
>                       value="<c:out value="${coverTypes.key.id}" />"
> />
>       <input  type="hidden"
>                       id="questionnaireInputVO.coverTypesList[<c:out
> value="${index}"
> />].agreementType.key"
>                       name="questionnaireInputVO.coverTypesList[<c:out
> value="${index}"
> />].agreementType.key"
>                       value="<c:out
> value="${coverTypes.agreementType.key.id}" />" />
> </logic:iterate>
> 
> 
> I've discovered I need an entry in the x-work conversion properties:
> 
> Element_questionnaireInputVO.coverTypesList=com.mypath.CoverTypeVO
> CreateIfNull_questionnaireInputVO.coverTypesList=true
> 
> 
> But I am getting the following error:
> 
> 
> [2008-07-14 12:13:07,860] [.Transports : 2] DEBUG
> [com.opensymphony.xwork2.util.InstantiatingNullHandler       ]  :
> Entering
> nullPropertyValue [EMAIL PROTECTED],
> property=coverTypesList] 
> [2008-07-14 12:13:07,860] [.Transports : 2] ERROR
> [com.opensymphony.xwork2.util.InstantiatingNullHandler       ]  : Could
> not
> create and/or set value back on to object 
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean
> with name '[Lcom.mypath.CoverTypeVO;': Could not resolve matching
> constructor
>       at
> org.springframework.beans.factory.support.ConstructorResolver.autowireCo
> nstructor(ConstructorResolver.java:178)
>       at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
> tory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:799)
>       at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
> tory.autowire(AbstractAutowireCapableBeanFactory.java:255)
>       at
> com.opensymphony.xwork2.spring.SpringObjectFactory.buildBean(SpringObjec
> tFactory.java:145)
>       at
> com.opensymphony.xwork2.util.InstantiatingNullHandler.createObject(Insta
> ntiatingNullHandler.java:123)
>       at
> com.opensymphony.xwork2.util.InstantiatingNullHandler.nullPropertyValue(
> InstantiatingNullHandler.java:104)
>       at ognl.ASTProperty.getValueBody(ASTProperty.java:94)
>       at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
>       at ognl.SimpleNode.getValue(SimpleNode.java:210)
>       at ognl.ASTChain.setValueBody(ASTChain.java:168)
>       at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
>       at ognl.SimpleNode.setValue(SimpleNode.java:246)
>       at ognl.Ognl.setValue(Ognl.java:476)
>       at
> com.opensymphony.xwork2.util.OgnlUtil.setValue(OgnlUtil.java:186)
>       at
> com.opensymphony.xwork2.util.OgnlValueStack.setValue(OgnlValueStack.java
> :158)
>       at
> com.opensymphony.xwork2.util.OgnlValueStack.setValue(OgnlValueStack.java
> :146)
>       at
> com.opensymphony.xwork2.interceptor.ParametersInterceptor.setParameters(
> ParametersInterceptor.java:193)
>       at
> com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(Pa
> rametersInterceptor.java:159)
>       at
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
> thodFilterInterceptor.java:86)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>       at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>       at
> com.ing.itrf.starlite.common.interceptor.StarliteSecurityInterceptor.int
> ercept(StarliteSecurityInterceptor.java:54)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>       at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>       at
> org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(Servle
> tConfigInterceptor.java:170)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>       at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>       at
> com.ing.itrf.starlite.common.interceptor.StarliteDebugInterceptor.interc
> ept(StarliteDebugInterceptor.java:54)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>       at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>       at
> com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercep
> t(ExceptionMappingInterceptor.java:176)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>       at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>       at
> org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java
> :50)
>       at
> org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:5
> 04)
>       at
> org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher
> .java:419)
>       at
> com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInst
> anceWrapper.java:132)
>       at
> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterCh
> ain.java:71)
>       at
> com.ing.itrf.solution.filter.PerformanceMonitorFilter.doFilter(Performan
> ceMonitorFilter.java:135)
>       at
> com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInst
> anceWrapper.java:132)
>       at
> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterCh
> ain.java:71)
>       at
> com.ing.itrf.security.filter.SecurityFilter$1.run(SecurityFilter.java:21
> 4)
>       at
> java.security.AccessController.doPrivileged(AccessController.java:260)
>       at javax.security.auth.Subject.doAs(Subject.java:555)
>       at
> com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:165)
>       at
> com.ing.itrf.security.filter.SecurityFilter.doFilter(SecurityFilter.java
> :212)
>       at
> com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInst
> anceWrapper.java:132)
>       at
> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterCh
> ain.java:71)
>       at
> com.ing.itrf.solution.filter.WaitPageFilter.doFilter(WaitPageFilter.java
> :190)
>       at
> com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInst
> anceWrapper.java:132)
>       at
> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterCh
> ain.java:71)
>       at
> com.ing.itrf.solution.filter.EncodingFilter.doFilter(EncodingFilter.java
> :115)
>       at
> com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInst
> anceWrapper.java:132)
>       at
> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterCh
> ain.java:71)
>       at
> com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispa
> tch(WebAppRequestDispatcher.java:1027)
>       at
> com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRe
> questDispatcher.java:544)
>       at
> com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppReq
> uestDispatcher.java:210)
>       at
> com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:1
> 39)
>       at
> com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInv
> oker.java:332)
>       at
> com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocati
> on(CachedInvocation.java:71)
>       at
> com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invo
> ke(CacheableInvocationContext.java:120)
>       at
> com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(Servle
> tRequestProcessor.java:250)
>       at
> com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSELis
> tener.java:334)
>       at
> com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection
> .java:56)
>       at
> com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:
> 652)
>       at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:448)
>       at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:937)
> [2008-07-14 12:13:07,860] [.Transports : 2] DEBUG
> [com.opensymphony.xwork2.util.OgnlValueStack                 ]  : Error
> setting value 
> ognl.OgnlException: source is null for getProperty(null, "0")
>       at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1638)
>       at ognl.ASTProperty.getValueBody(ASTProperty.java:92)
>       at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
>       at ognl.SimpleNode.getValue(SimpleNode.java:210)
>       at ognl.ASTChain.setValueBody(ASTChain.java:168)
>       at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
>       at ognl.SimpleNode.setValue(SimpleNode.java:246)
>       at ognl.Ognl.setValue(Ognl.java:476)
>       at
> com.opensymphony.xwork2.util.OgnlUtil.setValue(OgnlUtil.java:186)
>       at
> com.opensymphony.xwork2.util.OgnlValueStack.setValue(OgnlValueStack.java
> :158)
>       at
> com.opensymphony.xwork2.util.OgnlValueStack.setValue(OgnlValueStack.java
> :146)
>       at
> com.opensymphony.xwork2.interceptor.ParametersInterceptor.setParameters(
> ParametersInterceptor.java:193)
>       at
> com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(Pa
> rametersInterceptor.java:159)
>       at
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
> thodFilterInterceptor.java:86)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>       at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>       at
> com.ing.itrf.starlite.common.interceptor.StarliteSecurityInterceptor.int
> ercept(StarliteSecurityInterceptor.java:54)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>       at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>       at
> org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(Servle
> tConfigInterceptor.java:170)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>       at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>       at
> com.ing.itrf.starlite.common.interceptor.StarliteDebugInterceptor.interc
> ept(StarliteDebugInterceptor.java:54)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>       at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>       at
> com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercep
> t(ExceptionMappingInterceptor.java:176)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>       at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>       at
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>       at
> org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java
> :50)
>       at
> org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:5
> 04)
>       at
> org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher
> .java:419)
>       at
> com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInst
> anceWrapper.java:132)
>       at
> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterCh
> ain.java:71)
>       at
> com.ing.itrf.solution.filter.PerformanceMonitorFilter.doFilter(Performan
> ceMonitorFilter.java:135)
>       at
> com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInst
> anceWrapper.java:132)
>       at
> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterCh
> ain.java:71)
>       at
> com.ing.itrf.security.filter.SecurityFilter$1.run(SecurityFilter.java:21
> 4)
>       at
> java.security.AccessController.doPrivileged(AccessController.java:260)
>       at javax.security.auth.Subject.doAs(Subject.java:555)
>       at
> com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:165)
>       at
> com.ing.itrf.security.filter.SecurityFilter.doFilter(SecurityFilter.java
> :212)
>       at
> com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInst
> anceWrapper.java:132)
>       at
> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterCh
> ain.java:71)
>       at
> com.ing.itrf.solution.filter.WaitPageFilter.doFilter(WaitPageFilter.java
> :190)
>       at
> com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInst
> anceWrapper.java:132)
>       at
> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterCh
> ain.java:71)
>       at
> com.ing.itrf.solution.filter.EncodingFilter.doFilter(EncodingFilter.java
> :115)
>       at
> com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInst
> anceWrapper.java:132)
>       at
> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterCh
> ain.java:71)
>       at
> com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispa
> tch(WebAppRequestDispatcher.java:1027)
>       at
> com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRe
> questDispatcher.java:544)
>       at
> com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppReq
> uestDispatcher.java:210)
>       at
> com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:1
> 39)
>       at
> com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInv
> oker.java:332)
>       at
> com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocati
> on(CachedInvocation.java:71)
>       at
> com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invo
> ke(CacheableInvocationContext.java:120)
>       at
> com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(Servle
> tRequestProcessor.java:250)
>       at
> com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSELis
> tener.java:334)
>       at
> com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection
> .java:56)
>       at
> com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:
> 652)
>       at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:448)
>       at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:937)
> 
> 
> Can anyone help?
> 
> 
> 
> 
> -- 
> View this message in context:
> http://www.nabble.com/Struts-2-Indexed-Properties-tp18441212p18441212.ht
> ml
> Sent from the Struts - User mailing list archive at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> Any comments or statements made in this email are not necessarily those of
> Tavant Technologies.
> The information transmitted is intended only for the person or entity to
> which it is addressed and may 
> contain confidential and/or privileged material. If you have received this
> in error, please contact the 
> sender and delete the material from any computer. All e-mails sent from or
> to Tavant Technologies 
> may be subject to our monitoring procedures.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Struts-2-Indexed-Properties-tp18441212p18459603.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