Maximillian Steinbach created TAP5-2774:
-------------------------------------------
Summary: Form in form error when forms are not inside one another.
Key: TAP5-2774
URL: https://issues.apache.org/jira/browse/TAP5-2774
Project: Tapestry 5
Issue Type: Bug
Components: tapestry-core
Affects Versions: 5.8.2
Reporter: Maximillian Steinbach
I have t:form (form A) with an onSubmit action. This form's submit action
triggers an ajax reload. The part of the page that is being reloaded is
different to that of form A. The area being reloaded contains another t:form
(form B) that must be re-rendered. While it is re-rendering form B it hits an
exception at
org.apache.tapestry5.corelib.components.Form.setupRender(Form.java:330)
The error is "Form components may not be placed inside other Form components."
It seems that there is a check here to see if there is an existing outer
enclosing form in the process of being rendered. However the existing form it
finds is the form A that is not an enclosing form, it is the form that triggers
the submit action. Form A seems to be pushed into the environment on line 503
in the method onAction.
I have taken a look at the git history here and there doesn't seems to have
been any recent changes to this code so I am confused why this issue has begun
on my end.
As such, the result of this bug seems to be that a form's onSubmit action can
never trigger the reload of another component that itself contains a form. This
seems to be problematic.
I can take a look at addressing this issue myself but I would appreciate
other's more experienced input first before I attempt it.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)