I didn't think you'd even need to have the type conversion properties file, but w/o generic accessors I'm not sure.
The above JSP still has parens instead of square brackets. d. On Fri, Apr 29, 2011 at 4:07 PM, Joe <fullmit...@lycos.com> wrote: > Dave Newton-6 wrote: > Try the square brackets again. > > Chris Pratt wrote: > Try: value="%{name}" > > That gets the value into the textbox, but when I submit the form, I get > either nothing in the action (square brackets) or an exception (using curly > brackets): > > <s:iterator value="beanList" var="bean"> > <s:textfield theme="simple" name="beanList(%{#bean.id}).name" > value="%{name}" /><br> > </s:iterator> > > All my save action does is print out the array. > > public class TestAction implements Action { > private static Logger log = Logger.getLogger(TestAction.class); > > // note: getters/setters/execute method already posted removed > > public String save(){ > log.debug("save: beanList size: "+beanList.size()); > for (int i = 0; i < beanList.size(); i++){ > log.debug(beanList.get(i)); > } > return SUCCESS; > } > } > > The SUCCESS result is mapped to a blank JSP: > > <action name="saveTest" method="save" > class="gmi.action.test.TestAction"> > <result name="success">/test2.jsp</result> > </action> > > The exception from the curly-brace version is: > > [2011-04-29 15:57:29,802] ERROR > nsymphony.xwork2.ognl.accessor.XWorkMethodAccessor - An unexpected exception > occurred > java.util.NoSuchElementException > at java.util.AbstractList$Itr.next(AbstractList.java:350) > at > com.opensymphony.xwork2.ognl.accessor.XWorkCollectionPropertyAccessor.getProperty(XWorkCollectionPropertyAcce > ssor.java:122) > at > com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethod(XWorkMethodAccessor.java:81) > at ognl.OgnlRuntime.callMethod(OgnlRuntime.java:846) > at > com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor.callMethod(CompoundRootAccessor.java:232) > at ognl.OgnlRuntime.callMethod(OgnlRuntime.java:846) > at ognl.ASTMethod.getValueBody(ASTMethod.java:73) > 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.ognl.OgnlUtil.setValue(OgnlUtil.java:209) > at > com.opensymphony.xwork2.ognl.OgnlValueStack.trySetValue(OgnlValueStack.java:173) > at > com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:160) > at > com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:151) > at > com.opensymphony.xwork2.interceptor.ParametersInterceptor.setParameters(ParametersInterceptor.java:288) > at > com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:199) > at > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) > at > com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207) > at > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) > at > com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:19 > 0) > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) > at > org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75) > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) > at > org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94) > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) > at > org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243) > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) > at > com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) > at > com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java: > 141) > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) > at > org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) > at > com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142) > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) > at > com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166) > at > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) > at > com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176) > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) > at > org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) > at > com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190) > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) > at > com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:18 > 7) > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) > at > org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) > at > org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485) > at > org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395) > at > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) > at > weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496) > at > weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) > at weblogic.security.service.SecurityManager.runAs(Unknown Source) > at > weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180) > at > weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086) > at > weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406) > at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) > at weblogic.work.ExecuteThread.run(ExecuteThread.java:173) > [2011-04-29 15:57:29,802] WARN com.opensymphony.xwork2.ognl.OgnlValueStack > - Error setting expression 'beanList( > 1).name' with value '[Ljava.lang.String;@1f848d1' > ognl.OgnlException: target is null for setProperty(null, "name", > [Ljava.lang.String;@1f848d1) > at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1651) > at ognl.ASTProperty.setValueBody(ASTProperty.java:101) > at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177) > at ognl.SimpleNode.setValue(SimpleNode.java:246) > at ognl.ASTChain.setValueBody(ASTChain.java:172) > at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177) > at ognl.SimpleNode.setValue(SimpleNode.java:246) > at ognl.Ognl.setValue(Ognl.java:476) > . . . > repeated several times > Is this a problem with type conversion? > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org