> Hi,
>
> I'm getting the following error
I can't reproduce the error. Can you create a cut down version that
causes the problem?
Here is my attempt to recreate.
@Property
private String blockId = "one";
@Component
private Zone blockZone;
@Component
private Form oneForm;
@Property
private String oneText;
@Component
private Form twoForm;
@Property
private String twoText;
@Inject
private ComponentResources resources;
public Block onSuccessFromOneForm() {
blockId = "two";
return blockZone.getBody();
}
public Block onSuccessFromTwoForm() {
blockId = "one";
return blockZone.getBody();
}
public Block getTheBlock() {
return resources.getBlock(blockId);
}
<t:zone t:id="blockZone">
<t:delegate to="theBlock"/>
<t:block t:id="one">
<t:form t:id="oneForm" t:zone="blockZone">
<t:label for="oneText">One</t:label>
<t:textfield t:id="oneText"/>
<t:submit/>
</t:form>
</t:block>
<t:block t:id="two">
<t:form t:id="twoForm" t:zone="blockZone">
<t:label for="twoText">Two</t:label>
<t:textfield t:id="twoText"/>
<t:submit/>
</t:form>
</t:block>
</t:zone>
Josh
On Wed, Feb 23, 2011 at 10:52 AM, Rich M <[email protected]> wrote:
> Hi,
>
> I'm getting the following error
>
> Caused by: java.lang.NullPointerException
> at
> org.apache.tapestry5.corelib.components.Form._$environment_read_renderSupport(Form.java)
> at
> org.apache.tapestry5.corelib.components.Form.beginRender(Form.java:245)
> at org.apache.tapestry5.corelib.components.Form.beginRender(Form.java)
>
> when I re-render the main zone in my page from an ActionLink or FormSuccess
> event method.
>
> More about my page:
>
> The page is divided into 8 blocks, and 6 of the blocks encapsulate a form,
> as such:
>
> <zone>
> <delegate />
> <block>
> <form>
> </form>
> <block>
> ...
> <block>
> <form>
> </form>
> </block>
> </zone>
>
> When first loading the page, it delegates to the first block. You can fill
> out the form and then submit the form. Upon submitting the form, it triggers
> the onSuccessFromForm method, which updates the Block for the Delegate and
> returns the zone component.
>
> At this point, I get the NullPointerError which points directly to the line
> in the TML file declaring the <t:form> in the Block that should now be
> delegated to. I declare the t:id of the form and in the page class each Form
> is declared as a private Form with the @Component annotation.
>
> Any help or advice would be appreciated. I have used the
> Zone/Block/Event-Method strategy in another Component of mine successfully,
> but the Blocks in that Component never contained Form components, which
> seems to be the added complication.
>
> Also, I had the Events working when I just returned the page class itself by
> String reference, but I'd prefer to update the Zone over reload the Page
> each time.
>
> Thanks,
> Rich
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]