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

Reply via email to