You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by "Thiago Henrique De Paula Figueiredo (Jira)" <ji...@apache.org> on 2020/05/09 18:25:00 UTC
[jira] [Resolved] (TAP5-2622) Update of a zone inside a form
element
[ https://issues.apache.org/jira/browse/TAP5-2622?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thiago Henrique De Paula Figueiredo resolved TAP5-2622.
-------------------------------------------------------
Assignee: Thiago Henrique De Paula Figueiredo
Resolution: Fixed
I'm afraid updating form field components inside a Zone which doesn't surround the Form instance is a known Tapestry limitation.
> Update of a zone inside a form element
> --------------------------------------
>
> Key: TAP5-2622
> URL: https://issues.apache.org/jira/browse/TAP5-2622
> Project: Tapestry 5
> Issue Type: Bug
> Affects Versions: 5.5.0, 5.4.5
> Reporter: Adriaan Joubert
> Assignee: Thiago Henrique De Paula Figueiredo
> Priority: Major
>
> Hi,
> we've encountered the following problem:
>
> *1) Updating a zone that contains a textfield/dropdown/checkbox*
> *java*
> @Property
> private String textfieldValue_;
> @Inject
> private AjaxResponseRenderer ajaxRenderer_;
> @InjectComponent
> private Zone testZone_;
> void onTestLink() {
> ajaxRenderer_.addRender(testZone_.getClientId(), testZone_.getBody());
> }
>
> *tml*
>
> <t:eventlink event="testLink" async="true">Test</t:eventlink>
> <t:form>
> <t:zone t:id="testZone" id="testZone">
> <t:textfield value="textfieldValue"/>
> </t:zone>
> </t:form>
>
> *error when you click on the link:*
>
> Caused by: java.lang.RuntimeException: Component ******.textfield must be enclosed by a Form component.
> at org.apache.tapestry5.corelib.base.AbstractField.setup(AbstractField.java:192)
> at org.apache.tapestry5.corelib.base.AbstractField.setupRender(AbstractField.java)
> at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.invokeComponent(ComponentPageElementImpl.java:174)
> at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:143)
> ... 110 more
>
> *2) Updating a zone that contains a button*
> *java*
> @Inject
> private AjaxResponseRenderer ajaxRenderer_;
> @InjectComponent
> private Zone testZone_;
> void onTestLink() {
> ajaxRenderer_.addRender(testZone_.getClientId(), testZone_.getBody());
> }
>
> *tml*
> <t:eventlink event="testLink" async="true">Test</t:eventlink>
> <t:form>
> <t:zone t:id="testZone" id="testZone">
> <t:submit/>
> </t:zone>
> </t:form>
> *error when you click on the link:*
> Caused by: org.apache.tapestry5.ioc.util.UnknownValueException: No object of type org.apache.tapestry5.services.FormSupport is available from the Environment.
> at org.apache.tapestry5.internal.services.EnvironmentImpl.peekRequired(EnvironmentImpl.java:96)
> at $Environment_a20d0056aee.peekRequired(Unknown Source)
> at $Environment_a20d00556d4.peekRequired(Unknown Source)
> at org.apache.tapestry5.internal.transform.EnvironmentalWorker$EnvironmentalConduit.get(EnvironmentalWorker.java:59)
> at org.apache.tapestry5.corelib.components.Submit.conduit_get_formSupport(Submit.java)
> at org.apache.tapestry5.corelib.components.Submit.beginRender(Submit.java:155)
> at org.apache.tapestry5.corelib.components.Submit.beginRender(Submit.java)
> at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$BeginRenderPhase.invokeComponent(ComponentPageElementImpl.java:202)
> at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:133)
>
> Thanks,
>
> Adriaan
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)