myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eduardo Breijo (JIRA)" <...@myfaces.apache.org>
Subject [jira] [Commented] (MYFACES-4229) Regression in Spec Issue 790: Cross form submit
Date Mon, 07 May 2018 18:15:00 GMT

    [ https://issues.apache.org/jira/browse/MYFACES-4229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16466271#comment-16466271
] 

Eduardo Breijo commented on MYFACES-4229:
-----------------------------------------

I suspect this could be related to some changes made in: https://issues.apache.org/jira/browse/MYFACES-4204

[~werpu] can you take a look at this when you have some time?

> Regression in Spec Issue 790: Cross form submit
> -----------------------------------------------
>
>                 Key: MYFACES-4229
>                 URL: https://issues.apache.org/jira/browse/MYFACES-4229
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-372
>    Affects Versions: 2.3.1
>            Reporter: Eduardo Breijo
>            Priority: Major
>         Attachments: JSF23Spec790.war
>
>
> After releasing MyFaces 2.3.1, I noticed a regression in cross form submit from Spec
Issue 790: [https://github.com/javaee/javaserverfaces-spec/issues/790]
> HTML sample code:
> {code:java}
> <h:form id="a"> 
> <h:outputText value="This is 'form a' " /> 
> <h:outputLabel for="input1" value="Enter a new value for input1: " /> <h:inputText
id="input1" value="#{simpleBean.input}" /> 
> <h:commandButton id="submitButton1" value="Click here to execute 'form a' and 'form
b' but re-render 'form b'"> 
> <f:ajax execute="a :b" render=":b" /> 
> </h:commandButton> 
> </h:form> 
> <h:form id="b"> 
> <h:outputText value="This is 'form b' " /> 
> <h:outputLabel for="input2" value="Enter a new value for input2: " /> <h:inputText
id="input2" value="#{simpleBean.input}" /> 
> <h:commandLink id="commandLink1" value="Click here to execute 'form a' and 'form b' 
but re-render 'form a'"> 
> <f:ajax execute="b :a" render=":a" /> 
> </h:commandLink> 
> </h:form>
> {code}
>  
> The issue is that on MyFaces 2.3.1 the hidden input javax.faces.ViewState is being removed
from form "b" after we submit form "a" and viceversa. 
> Rendered page on MyFaces 2.3.0
> {code:java}
> <form id="a" name="a" method="post" action="/JSF23Spec790/test1.xhtml" enctype="application/x-www-form-urlencoded">
This is 'form a' 
> <label for="a:input1"> Enter a new value for input1: </label> 
> <input id="a:input1" name="a:input1" type="text" value="test"/> 
> <input id="a:submitButton1" name="a:submitButton1" type="submit" value="Click here
to execute 'form a' and 'form b' but re-render 'form b'" onclick="jsf.util.chain(this, event,'jsf.ajax.request(this,event,{execute:\'a
b \',render:\'b \',\'javax.faces.behavior.event\':\'action\'})'); return false;"/> 
> <input type="hidden" name="a_SUBMIT" value="1"/> 
> <input type="hidden" name="javax.faces.ViewState" id="j_id__v_0:javax.faces.ViewState:1"
value="RjhDMEFGQUMwNDI4NTUwRDAwMDAwMDAx" autocomplete="off"/> 
> </form> 
> <form id="b" name="b" method="post" action="/JSF23Spec790/test1.xhtml" enctype="application/x-www-form-urlencoded">
This is 'form b' 
> <label for="b:input2"> Enter a new value for input2: </label> 
> <input id="b:input2" name="b:input2" type="text" value="test"/> 
> <a href="#" onclick="jsf.util.chain(this, event,'jsf.ajax.request(this,event,{execute:\'b
a \',render:\'a \',\'javax.faces.behavior.event\':\'action\'})'); return false;" id="b:commandLink1"
name="b:commandLink1"> Click here to execute 'form a' and 'form b' but re-render 'form
a' </a> 
> <input type="hidden" name="b_SUBMIT" value="1"/> 
> <input type="hidden" id="javax.faces.ViewState:0" name="javax.faces.ViewState" value="RjhDMEFGQUMwNDI4NTUwRDAwMDAwMDAx"/>

> </form>
> {code}
>  
> Rendered page on MyFaces 2.3.1
> {code:java}
> <form id="a" name="a" method="post" action="/JSF23Spec790/test1.xhtml" enctype="application/x-www-form-urlencoded">
This is 'form a' 
> <label for="a:input1"> Enter a new value for input1: </label> 
> <input id="a:input1" name="a:input1" type="text" value="test"/> 
> <input id="a:submitButton1" name="a:submitButton1" type="submit" value="Click here
to execute 'form a' and 'form b' but re-render 'form b'" onclick="jsf.util.chain(this, event,'jsf.ajax.request(this,event,{execute:\'a
b \',render:\'b \',\'javax.faces.behavior.event\':\'action\'})'); return false;"/> 
> <input type="hidden" name="a_SUBMIT" value="1"/> 
> <input type="hidden" name="javax.faces.ViewState" id="j_id__v_0:javax.faces.ViewState:1"
value="RjY3MjAyMTY3N0U2ODE3RDAwMDAwMDAx" autocomplete="off"/> 
> </form> 
> <form id="b" name="b" method="post" action="/JSF23Spec790/test1.xhtml" enctype="application/x-www-form-urlencoded">
This is 'form b' 
> <label for="b:input2"> Enter a new value for input2: </label> 
> <input id="b:input2" name="b:input2" type="text" value="test"/> 
> <a href="#" onclick="jsf.util.chain(this, event,'jsf.ajax.request(this,event,{execute:\'b
a \',render:\'a \',\'javax.faces.behavior.event\':\'action\'})'); return false;" id="b:commandLink1"
name="b:commandLink1"> Click here to execute 'form a' and 'form b' but re-render 'form
a' </a> 
> <input type="hidden" name="b_SUBMIT" value="1"/> 
> </form>
> {code}
>  
> I have provided a sample app that shows the issue when MyFaces 2.3.1 is used.
>  # Just deploy the app on Tomcat and drive a request to: [http://localhost:8080/JSF23Spec790/test1.xhtml]
>  # Enter a text in input1 and click submit button next to the input. Check the rendered
page.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message