You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Daniel Haynes <da...@rulefinancial.com> on 2002/08/19 19:31:39 UTC
upgrade 1.1-b1 to 1.1-b2 breaks indexed attribute under iterate ?
Hi All,
I've been attempting to upgrade a web app from jakarta-struts-1.1-b1 to
jakarta-struts-1.1-b2.zip and it appears to be breaking some code.
Specifically a piece of code 'Using the Indexed Attribute in the Scope of
the Iterate Tag' (as in 'Using Struts' by Maturo).
jsp:-
<logic:iterate id="approvalList" collection="<%= approvals %>">
...
<td align=CENTER>
<html:submit indexed="true" property="cmd" value="Details"
styleClass="tableButton" titleKey="approvescreen.button.details"/>
</td>
ActionForm: -
private int index;
private String cmd;
public void setCmd(int index, String value)
{
this.index = index;
cmd = value;
}
public String getCmd(int index)
{
return cmd;
}
public String getCmd()
{
return cmd;
}
public int getIndex()
{
return index;
}
When changing from jakarta-struts-1.1-b1 to jakarta-struts-1.1-b2 I get a
browser error:
java.lang.reflect.InvocationTargetException: Cannot set cmd
at
org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:922)
at
org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:726)
at
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:978)
at
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.j
ava:779)
at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:246)
at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1292)
at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:243)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:190)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:2
46)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170
)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:
1012)
at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107
)
at java.lang.Thread.run(Thread.java:536)
Caused by: java.lang.NoSuchMethodException: Property 'cmd' has no setter
method
at
org.apache.commons.beanutils.PropertyUtils.setSimpleProperty(PropertyUtils.j
ava:1643)
at
org.apache.commons.beanutils.PropertyUtils.setNestedProperty(PropertyUtils.j
ava:1545)
at
org.apache.commons.beanutils.PropertyUtils.setProperty(PropertyUtils.java:15
74)
at
org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:919)
By using the 'old' files (for 1.1-b1): struts.jar, commons-beanutils.jar and
commons-digester.jar (with all others from1.1-b2) I do not get an error and
the code works fine.
Does anyone know why this happens and what I need to do to fix the code to
work under 1.1b2 ?
many thanks
Dan
Daniel Haynes
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>