You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by kristjankelt <kr...@hotmail.com> on 2009/01/04 00:20:12 UTC
T5 BeanEditForm and selectObject component
Hello,
I'm using a bean edit form with the select object component (taken from
Tapestry Wiki http://wiki.apache.org/tapestry/Tapestry5SelectObject).
<t:beaneditform object="deposit" add="account" model="depositModel" >
<t:parameter name="account">
<t:label for="account"/>
<t:selectObject t:id="account"
list="accounts" value="deposit.account"
labelField="literal:account"/>
</t:parameter>
</t:beaneditform>
Because the class of the method returning the object for the bean edit form
is an abstract class, then I have to specify the model, because method will
actually return one of the sub classes representing actual deposit
implementation (and will have some specific fields I want to display).
It appears that this combination brings on some weird error situation where
the method “next” of iterator in the loop component advanceVolatile method
is called but there is no elements left in the iterator.
When I do not specify the model, then everything works fine (except I do not
get the additional fields from the sub class). Again, when I do not add the
selectObject component, then everything works fine.
I'm quite stuck here so when somebody can direct my into right direction
then I would be very thankful.
Kristjan Kelt
java.util.NoSuchElementException
Stack trace
* java.util.AbstractList$Itr.next(AbstractList.java:350)
*
org.apache.tapestry5.corelib.components.Loop.advanceVolatile(Loop.java:326)
*
org.apache.tapestry5.corelib.components.Loop.access$200(Loop.java:37)
*
org.apache.tapestry5.corelib.components.Loop$3.execute(Loop.java:88)
*
org.apache.tapestry5.corelib.components.Loop$3.execute(Loop.java:92)
*
org.apache.tapestry5.corelib.components.Form.executeStoredActions(Form.java:482)
*
org.apache.tapestry5.corelib.components.Form._$advised$onAction(Form.java:380)
*
org.apache.tapestry5.corelib.components.Form$onAction$invocation_11e949b5de4.invokeAdvisedMethod(Form$onAction$invocation_11e949b5de4.java)
*
org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:71)
*
org.apache.tapestry5.ioc.internal.services.LoggingAdvice.advise(LoggingAdvice.java:37)
*
org.apache.tapestry5.internal.transform.LogWorker$1.advise(LogWorker.java:54)
*
org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:80)
* org.apache.tapestry5.corelib.components.Form.onAction(Form.java)
*
org.apache.tapestry5.corelib.components.Form.dispatchComponentEvent(Form.java)
*
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:894)
*
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1059)
*
org.apache.tapestry5.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:68)
*
org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:42)
*
org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
*
org.apache.tapestry5.services.TapestryModule$44.handle(TapestryModule.java:2105)
*
org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:127)
*
org.apache.tapestry5.services.TapestryModule$17.service(TapestryModule.java:1029)
*
org.apache.tapestry5.internal.services.LocalizationFilter.service(LocalizationFilter.java:42)
*
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
*
org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:621)
*
org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:611)
*
org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85)
*
org.apache.tapestry5.tutorial.services.AppModule$1.service(AppModule.java:126)
*
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93)
*
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84)
*
org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:83)
*
org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106)
*
org.apache.tapestry5.services.TapestryModule$16.service(TapestryModule.java:1007)
*
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
*
org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:179)
*
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
*
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
*
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
*
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
*
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
*
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
*
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
*
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
*
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
* org.mortbay.jetty.Server.handle(Server.java:324)
*
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
*
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842)
* org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
* org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
* org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
*
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
*
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
--
View this message in context: http://www.nabble.com/T5-BeanEditForm-and-selectObject-component-tp21270740p21270740.html
Sent from the Tapestry - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org
Re: T5 BeanEditForm and selectObject component
Posted by kristjankelt <kr...@hotmail.com>.
I found out that the real cause of the problem was beaneditform add
parameter.
For example
<t:beaneditform object="deposit" add="account" model="depositModel" >
<t:parameter name="account">
...
</t:parameter>
</t:beaneditform>
will fail and
<t:beaneditform object="deposit" model="depositModel" >
<t:parameter name="account">
...
</t:parameter>
</t:beaneditform>
public BeanModel getDepositModel() {
...
model.add("account");
return model;
}
will work.
kristjankelt wrote:
>
>
> I'm using a bean edit form with the select object component (taken from
> Tapestry Wiki http://wiki.apache.org/tapestry/Tapestry5SelectObject).
>
> <t:beaneditform object="deposit" add="account" model="depositModel" >
> <t:parameter name="account">
> <t:label for="account"/>
> <t:selectObject t:id="account"
> list="accounts" value="deposit.account"
> labelField="literal:account"/>
> </t:parameter>
> </t:beaneditform>
>
>
--
View this message in context: http://www.nabble.com/T5-BeanEditForm-and-selectObject-component-tp21270740p21473720.html
Sent from the Tapestry - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org