Hello Howard,
> The path of least resistance is to use a ValidField
> instead of a TextField. The validator will do the
> conversion between int and String.
That makes sense, but I'm can't make it work.
For some reason I'm getting a "java.lang.NullPointerException".
I'm trying to implement a shopping Cart,
where each row has a input field to change the quantity.
I have a Foreach component that fetches the items in the cart and
draws the rows.
The schema is something like this:
Form
Foreach
Direct | Insert | Insert | Insert | ValidField | Insert
With the TextField the Cart gets rendered but not with ValidField.
The definition I use for the TextField:
<component id="itemQuantity" type="TextField">
<binding name="value" property-path="currentItem.qty" />
<static-binding name="displayWidth">3</static-binding>
<static-binding name="maximumLength">10</static-binding>
</component>
***********************************************************
The definition I use for the ValidField:
<bean name="delegate" class="net.sf.tapestry.valid.ValidationDelegate" />
<bean name="intValidator" class="net.sf.tapestry.valid.NumberValidator">
<set-property name="required">
<field-value field-name="Boolean.TRUE"/>
</set-property>
</bean>
<component id="itemQuantity" type="ValidField">
<binding name="validator" property-path="beans.intValidator" />
<binding name="value" property-path="currentItem.qty" />
<static-binding name="displayName">itemQuantity</static-binding>
<static-binding name="displayWidth">3</static-binding>
<static-binding name="maximumLength">10</static-binding>
</component>
************************************************************
The Trace:
An exception has occured.
You may continue by restarting the session.
Name: net.sf.tapestry.RequestCycleException
Message:
component: tapestryCIO.pages.Cart@da691a[Cart]
Name: java.lang.NullPointerException
Message:
Trace:
net.sf.tapestry.valid.ValidField.renderComponent(ValidField.java:227)
net.sf.tapestry.AbstractComponent.render(AbstractComponent.java:874)
net.sf.tapestry.AbstractComponent.renderWrapped(AbstractComponent.java:645)
net.sf.tapestry.components.Foreach.renderComponent(Foreach.java:202)
net.sf.tapestry.AbstractComponent.render(AbstractComponent.java:874)
net.sf.tapestry.AbstractComponent.renderWrapped(AbstractComponent.java:645)
net.sf.tapestry.form.Form.renderComponent(Form.java:402)
net.sf.tapestry.AbstractComponent.render(AbstractComponent.java:874)
net.sf.tapestry.AbstractComponent.renderWrapped(AbstractComponent.java:645)
net.sf.tapestry.components.InsertWrapped.renderComponent(InsertWrapped.java:
60)
net.sf.tapestry.AbstractComponent.render(AbstractComponent.java:874)
net.sf.tapestry.AbstractComponent.renderWrapped(AbstractComponent.java:645)
net.sf.tapestry.html.Body.renderComponent(Body.java:266)
net.sf.tapestry.AbstractComponent.render(AbstractComponent.java:874)
net.sf.tapestry.AbstractComponent.renderWrapped(AbstractComponent.java:645)
net.sf.tapestry.html.Shell.renderComponent(Shell.java:188)
net.sf.tapestry.AbstractComponent.render(AbstractComponent.java:874)
net.sf.tapestry.BaseComponent.renderComponent(BaseComponent.java:455)
net.sf.tapestry.AbstractComponent.render(AbstractComponent.java:874)
net.sf.tapestry.BaseComponent.renderComponent(BaseComponent.java:455)
net.sf.tapestry.AbstractComponent.render(AbstractComponent.java:874)
net.sf.tapestry.AbstractPage.renderPage(AbstractPage.java:267)
net.sf.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:410)
net.sf.tapestry.engine.AbstractEngine.renderResponse(AbstractEngine.java:614
)
net.sf.tapestry.engine.DirectService.service(DirectService.java:156)
net.sf.tapestry.engine.AbstractEngine.service(AbstractEngine.java:747)
net.sf.tapestry.ApplicationServlet.doService(ApplicationServlet.java:193)
tapestryCIO.PethopServlet.doService(PethopServlet.java:31)
net.sf.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:161)
javax.servlet.http.HttpServlet.service(HttpServlet.java:126)
javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:9
6)
com.caucho.server.http.Invocation.service(Invocation.java:311)
com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:218)
com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:160)
com.caucho.server.TcpConnection.run(TcpConnection.java:137)
java.lang.Thread.run(Thread.java:536)
Any idea of what I'm doing wrong?
Thanks,
Luis Neves
_______________________________________________________________
Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas -
http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink
_______________________________________________
Tapestry-developer mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/tapestry-developer