If you replace your template's <body> tag with <body jwcid="body"> (as a
Body component) this will be fixed.

The null pointer is caused by the ValidField not being wrapped by a Body.

As a rule of thumb, always use the Body component.  More and more stuff is
depending on it.

The error message should be better, please add a bug.  It'll be fixed in
2.3.

----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, October 06, 2002 10:00 AM
Subject: [Tapestry-developer] Problems with ValidField...


> Hi,
> I have been writing in awfully often. If this is not appreciated, please
> let me know.
>
> This is my problem. I am trying to use Tapestry's built in field
> validation... and I am running into trouble.
> I have a text control handled by the Tapestry component 'ValidField' - the
> source of my problem.
> I am getting a NullPointer Exception. I have included the stack trace at
> the end of this mail.
>
> My code is mostly copied from the Tutorials.
>
> Can anyone help me?
>
> Thanks in advance!
>
> Regards,
> Manoj
>
> -----------------------------  This is the TestForm.jwc file
> -----------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> <!-- $Id: Home.jwc,v 1.6 2002/05/13 14:00:37 hship Exp $ -->
> <!DOCTYPE specification PUBLIC
>      "-//Howard Lewis Ship//Tapestry Specification 1.2//EN"
>      "http://tapestry.sf.net/dtd/Tapestry_1_2.dtd";>
>
> <specification class="items.Test.TestForm">
>
> <bean name="delegate" class="net.sf.tapestry.valid.ValidationDelegate"/>
>
> <component id="loginForm" type="Form">
> <binding name="delegate" property-path="beans.delegate"/>
> <binding name="listener" property-path="listeners.formSubmit"/>
> </component>
>
> <component id="testField" type="ValidField">
>   <binding name="value" property-path="testField"/>
>   <static-binding name="displayName">Ticker ID</static-binding>
>   <field-binding name="validator" field-name
> ="net.sf.tapestry.valid.StringValidator.REQUIRED"/>
> </component>
> <!--
> <component id="okSubmit" type="Submit">
>     <binding name="listener" property-path="listeners.okSubmit"/>
> </component>
> -->
> </specification>
>
> -----------------------------  This is the TestForm.java file
> -----------------------------
> public class TestForm extends BasePage
> {
>     private String testField = "asdf";
>     public void okSubmit(IRequestCycle cycle)
>     {
>         cycle.setPage("Two");
>     }
>
>     public void formSubmit(IRequestCycle cycle)
>     {
>         cycle.setPage("Two");
>     }
>
>     public String getTestField ()
>     {
>         return testField;
>     }
>
>     public void setTestField (String val)
>     {
>         testField = val;
>     }
>
>     public void detach()
>     {
>         System.out.println( "detach" );
>         super.detach();
>     }
> }
> -----------------------------  This is the TestForm.html file
> -----------------------------
> ...
> <form jwcid="loginForm">
>  <table cellpadding="4">
>
>     <tr>
>         <td>Test Field:</td>
>         <td><input jwcid="testField" /></td>
>     </tr>
>   <tr align="right">
>    <td colspan="2">
>         <input type="submit" value="Login"/>
>         <!-- <input jwcid="okSubmit" type="Submit" value="Login" /> -->
>    </td>
>   </tr>
>  </table>
> </form>
> ...
> -----------------------------  This is the Stack Trace
> -----------------------------
>
> net.sf.tapestry.RequestCycleException
>
> component:
> items.Test.TestForm@384065[TestForm]
>
> java.lang.NullPointerException
>
> Stack Trace:
> *
>
net.sf.tapestry.valid.BaseValidator.processValidatorScript(BaseValidator.jav
a:269)
>
>
> *
>
net.sf.tapestry.valid.StringValidator.renderValidatorContribution(StringVali
dator.java:178)
>
>
> * net.sf.tapestry.valid.ValidField.beforeCloseTag(ValidField.java:211)
> *
>
net.sf.tapestry.form.AbstractTextField.renderComponent(AbstractTextField.jav
a:122)
>
>
> * net.sf.tapestry.valid.ValidField.renderComponent(ValidField.java:186)
> * net.sf.tapestry.AbstractComponent.render(AbstractComponent.java:891)
> * net.sf.tapestry.AbstractComponent.renderBody(AbstractComponent.java:665)
> * net.sf.tapestry.form.Form.renderComponent(Form.java:325)
> * net.sf.tapestry.AbstractComponent.render(AbstractComponent.java:891)
> * net.sf.tapestry.BaseComponent.renderComponent(BaseComponent.java:460)
> * net.sf.tapestry.AbstractComponent.render(AbstractComponent.java:891)
> * net.sf.tapestry.AbstractPage.renderPage(AbstractPage.java:303)
> * net.sf.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:413)
> *
>
net.sf.tapestry.engine.AbstractEngine.renderResponse(AbstractEngine.java:610
)
>
>
> * net.sf.tapestry.engine.PageService.service(PageService.java:94)
> * net.sf.tapestry.engine.AbstractEngine.service(AbstractEngine.java:735)
> *
net.sf.tapestry.ApplicationServlet.doService(ApplicationServlet.java:176)
> * net.sf.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:144)
> * javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> * javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> * org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:371)
> * org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:613)
> * org.mortbay.http.HttpContext.handle(HttpContext.java:1387)
> * org.mortbay.http.HttpContext.handle(HttpContext.java:1326)
> * org.mortbay.http.HttpServer.service(HttpServer.java:757)
> * org.mortbay.http.HttpConnection.service(HttpConnection.java:741)
> * org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:914)
> * org.mortbay.http.HttpConnection.handle(HttpConnection.java:756)
> *
org.mortbay.http.SocketListener.handleConnection(SocketListener.java:151)
> * org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:287)
> * org.mortbay.util.ThreadPool$JobRunner.run(ThreadPool.java:715)
> * java.lang.Thread.run(Thread.java:484)
>
>
>
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> Tapestry-developer mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/tapestry-developer
>



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Tapestry-developer mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/tapestry-developer

Reply via email to