[
https://issues.apache.org/jira/browse/MYFACES-2483?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12801662#action_12801662
]
Leonardo Uribe commented on MYFACES-2483:
-----------------------------------------
Provided first prototype for this issue. It works but still is pending solve
interaction of c:if and cc:insertFacet, and do some more tests and cleanup to
commit it.
The strategy proposed to solve this issue works, but it has some details to be
addressed.
We have to put again the code removed on MYFACES-2389 clean up the
UIComponentBase.setParent() (PostBuildComponentTreeOnRestoreViewEvent), because
we need to relocate transient components filled on render response phase
components.
If we use PostAddToViewEvent for trigger it, some components are not removed
correctly from tree and cause duplicate id exception, because facelets detach
and attach all components from tree.
We have to test ComponentHandler.isNew() method. This method has sense only if
we solve this issue, and we have to deal with composite components correctly.
Use transient listeners for cc:insertChildren and cc:insertFacet are a bad
idea. The reason is if partial state saving is not used, the refresh algorithm
will not work, because after first request the listener is lost.
> Find a way to allow c:if work with partial state saving enabled
> ---------------------------------------------------------------
>
> Key: MYFACES-2483
> URL: https://issues.apache.org/jira/browse/MYFACES-2483
> Project: MyFaces Core
> Issue Type: Task
> Components: JSR-314
> Reporter: Leonardo Uribe
> Attachments: fixPSSIf2009JAN-7.patch
>
>
> This one is difficult to solve but I still think it is possible.
> It was explored trying to solve MYFACES-2428, and it seems ri is trying to do
> something about it too on:
> https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=1408
> and
> https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=1313
> One strategy to solve this one is this:
> 1. Mark the parent component containing c:if to not save it partially.
> 2. Do not execute c:if on postback and partial state saving enabled.
> In theory, the parent component should be restored fully from saved state.
> Note that things like:
> <c:if>....
> <p>Some markup</p>
> <c:if>
> is just invalid. It is expected that c:if only contains components with state.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.