[
https://issues.apache.org/jira/browse/MYFACES-2594?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12843489#action_12843489
]
Martin Marinschek commented on MYFACES-2594:
--------------------------------------------
Hi guys,
the viewpoint of the EG is that all dynamic changes to the component tree need
to be tracked by the state-saving algorithm, if partial state saving is enabled.
So if partial state saving is enabled, you need to hook into the add/remove
methods of the component and track the occurring changes.
If partial state saving is not enabled, everything should just work as it used
the work as the driving force for the state is then the full state-tree, which
was completely saved in the JSF1.2 case anyways.
best regards,
Martin
> Facelets state saving doesn't handle well programmatic component manipulation
> -----------------------------------------------------------------------------
>
> Key: MYFACES-2594
> URL: https://issues.apache.org/jira/browse/MYFACES-2594
> Project: MyFaces Core
> Issue Type: Bug
> Components: General
> Affects Versions: 2.0.0-beta-3
> Environment: myfaces trunk
> Reporter: Martin Koci
> Priority: Minor
>
> Simple tests (code pasted below) outputs following results:
> 1) JSP: switchs colums at every click with no problem
> 2) Facelets with javax.faces.PARTIAL_STATE_SAVING=false - no visual switch
> 3) Facelets with javax.faces.PARTIAL_STATE_SAVING=true switchs colums at
> every click with no problem
> Common code from test.jspx and test.xhtml
> ... jsp: or facelets stuff here ...
> <h:form id="form">
> <h:commandButton value="Switch columns">
> <f:actionListener binding="#{testBean}" />
> </h:commandButton>
> <h:dataTable id="table">
> <h:column>
> <f:facet name="header">
> <h:outputText value="firstName" />
> </f:facet>
> </h:column>
> <h:column>
> <f:facet name="header">
> <h:outputText value="surname" />
> </f:facet>
> </h:column>
> </h:dataTable>
> </h:form>
> @ManagedBean
> @RequestScoped
> public class TestBean implements ActionListener {
> public void processAction(ActionEvent event) throws
> AbortProcessingException {
> FacesContext context = FacesContext.getCurrentInstance();
> UIComponent table =
> context.getViewRoot().findComponent("form:table");
> UIComponent column1 = table.getChildren().get(0);
> UIComponent column2 = table.getChildren().get(1);
> table.getChildren().clear();
> table.getChildren().add(column2);
> table.getChildren().add(column1);
> }
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.