[
https://issues.apache.org/jira/browse/MYFACES-4511?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17640768#comment-17640768
]
Werner Punz edited comment on MYFACES-4511 at 11/29/22 3:29 PM:
----------------------------------------------------------------
Ok the issue I fixed seemed to be unrelated to what we have here (but still a
bug), and yes myfaces is wrong and the RI correct a render definitely has to
result in a response containing the render ids.
This comes down to a missing naming container handling we have to determine and
then prepend the naming container if there is one.
The naming container id usually is rendered after the initial page load in the
view state id!
(also we have a deviation regarding the viewstate ids in the new code compared
to the old code. . the old code rightfully had set the viewState according to
the incoming pattern
{code:java}
<namingContainer>:<viewstateMarker>:<render number of viewstate, can be any
which is not yet present>
{code}
This needs to be fixed as well.
So the update might be a little bit more than initially expected.
was (Author: werpu):
Ok the issue I fixed seemed to be unrelated to what we have here (but still a
bug), and yes myfaces is wrong and the RI correct a render definitely has to
result in a response containing the render ids.
This comes down to a missing naming container handling we have to determine and
then prepend the naming container if there is one.
The naming container usually is rendered after the initial page load in the
view state id!
(also we have a deviation regarding the viewstate ids in the new code compared
to the old code. . the old code rightfully had set the viewState according to
the incoming pattern
{code}
<namingContainer>:<viewstateMarker>:<render number of viewstate, can be any
which is not yet present>
{code}
This needs to be fixed as well.
So the update might be a little bit more than initially expected.
> TCK: Spec790: Manual faces.ajax.request() call fails to send correct response
> ------------------------------------------------------------------------------
>
> Key: MYFACES-4511
> URL: https://issues.apache.org/jira/browse/MYFACES-4511
> Project: MyFaces Core
> Issue Type: Bug
> Affects Versions: 2.2.15, 2.3.10, 2.3-next-M7, 4.0.0-RC2
> Reporter: Volodymyr Siedlecki
> Assignee: Werner Punz
> Priority: Major
> Attachments: test-faces23-cdi.war
>
>
> For this TCK application (see github and the attached), the manual ajax
> request fails.
> URL: localhost:port/namespacedView/spec790WithNamespacedView.xhtml
> MyFaces Output:{{{{}}{}}}
> {noformat}
> <?xml version="1.0" encoding="UTF-8"?>
> <partial-response id="j_id__v_0">
> <changes>
> <update id="j_id__v_0:jakarta.faces.ViewState:1">
> <![CDATA[ZWZkYjAyMGViZWRhZjZmYzAwMDAwMDAy]]>
> </update>
> </changes>
> </partial-response>{noformat}
> {{}}
> Mojarra Output:
> {noformat}
> <?xml version='1.0' encoding='UTF-8'?>
> <partial-response id="j_id1">
> <changes>
> <update id="j_id1:panel1">
> <![CDATA[<div id="j_id1:panel1">
> <form id="j_id1:form1" name="j_id1:form1" method="post"
> action="/namespacedView/spec790WithNamespacedView.xhtml"
> enctype="application/x-www-form-urlencoded">
> <input type="hidden" name="j_id1:form1" value="j_id1:form1" />
> <input id="j_id1:form1:button" type="submit"
> name="j_id1:form1:button" value="submit form1 and render panel2 and panel3
> using h:commandButton f:ajax"
> onclick="mojarra.ab(this,event,'action','j_id1:form1','j_id1:panel2
> j_id1:panel3');return false" />
> </form></div>]]>
> </update>
> <update id="j_id1:panel2">
> <![CDATA[<div id="j_id1:panel2">
> <form id="j_id1:form2" name="j_id1:form2" method="post"
> action="/namespacedView/spec790WithNamespacedView.xhtml"
> enctype="application/x-www-form-urlencoded">
> <input type="hidden" name="j_id1:form2" value="j_id1:form2" />
> <a id="j_id1:form2:link" href="#"
> onclick="mojarra.ab(this,event,'action','j_id1:form2','j_id1:panel1
> j_id1:panel3');return false">submit form2 and render panel1 and panel3 using
> h:commandLink f:ajax</a>
> </form></div>]]>
> </update>
> <update id="j_id1:jakarta.faces.ViewState:0">
> <![CDATA[-6784505207945273947:-8354726413445019164]]>
> </update>
> </changes>
> </partial-response>{noformat}
> My initial investigation leads me to believe its' because of what is sent in
> the form. MyFaces uses the input directly, but Mojarra looks to update to the
> full id when creating the request.
> MyFaces:
> {code:java}
> jakarta.faces.partial.render ":panel1 :panel2"{code}
> Mojarra:
> {code:java}
> j_id1:jakarta.faces.partial.render "j_id1:panel1 j_id1:panel2"{code}
> See the Facelet code here:
> [https://github.com/jakartaee/faces/blob/master/tck/faces23/namespacedView/src/main/webapp/spec790WithNamespacedView.xhtml#L43-L44]
>
> Test Code:
> [https://github.com/jakartaee/faces/blob/master/tck/faces23/namespacedView/src/test/java/ee/jakarta/tck/faces/test/javaee8/namespacedView/Spec790WithNamespacedViewIT.java#L74]
> Background Issue: [https://github.com/jakartaee/faces/issues/790]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)