[
https://issues.jboss.org/browse/RF-13107?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12797082#comment-12797082
]
Lukáš Fryč commented on RF-13107:
---------------------------------
Interesting part is here: RenderVisitContext is extended visit context which
visits all components which are {{ajaxRendered}}.
We should REJECT visiting of subtrees which are not active: there is a
interface for switchable panels called [{{boolean
AbstractTogglePanelItemInterface#shouldProcess();}}|https://github.com/richfaces/richfaces/blob/5.0.0.Alpha1/framework/src/main/java/org/richfaces/ui/toggle/AbstractTogglePanelItemInterface.java#L41].
It's [implemented by
AbstractTab|https://github.com/richfaces/richfaces/blob/5.0.0.Alpha1/framework/src/main/java/org/richfaces/ui/toggle/tabPanel/AbstractTab.java#L225].
I suggest to generalize this shouldProcess method to {{ActivableComponent}} or
{{SwitchableComponent}} interface
> rich:message is renderer even though it is in non-active switchable panel,
> causing JSF to fail with mallformedXML error
> -----------------------------------------------------------------------------------------------------------------------
>
> Key: RF-13107
> URL: https://issues.jboss.org/browse/RF-13107
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-validators
> Affects Versions: 4.3.2
> Reporter: Jonáš Trantina
> Fix For: 4.3.4
>
> Attachments: bug_reproducer.zip, reproducer_ajax.zip, rf13107ajax.png
>
> Original Estimate: 1 hour, 30 minutes
> Remaining Estimate: 1 hour, 30 minutes
>
> We have a form with a tabPanel component with two tabs A and B. In A there is
> an input and its rich:message in B the same plus a button that submits and
> re-renders B. When B is opened (thus A is not rendered) and the form is
> submitted and validation fails, then no message is shown.
> Note that:
> 1) switchType must be set to server to ensure the A's rich:message is really
> not on the page.
> 2) button in B must re-render only content of B
> This is only a specific scenario, the issue might occur also in other
> situations (e.g. global messages tag outside of tabPanel is not rendered).
> Please find the enclosed reproducer.
> Snipper:
> {code:xml}
> <h:form>
> <rich:tabPanel switchType="server">
> <rich:tab>
> <h:inputText id="surname" value="#{richBean.surname}">
> <f:validateLength minimum="10"/>
> </h:inputText>
> <rich:message for="surname"/>
> </rich:tab>
> <rich:tab>
> <h:panelGroup id="content">
> <h:inputText id="name" value="#{richBean.name}">
> <f:validateLength minimum="6"/>
> </h:inputText>
> <rich:message for="name"/>
> </h:panelGroup>
> <a4j:commandButton value="Submit" execute="content"
> render="content" />
> </rich:tab>
> </rich:tabPanel>
> </h:form>
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
richfaces-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/richfaces-issues