Sandbox & myfaces 1.2: browser back button does not work
--------------------------------------------------------

                 Key: TOMAHAWK-1128
                 URL: https://issues.apache.org/jira/browse/TOMAHAWK-1128
             Project: MyFaces Tomahawk
          Issue Type: Bug
    Affects Versions: 1.1.6
         Environment: myfaces 1.2.0, server-side state saving
            Reporter: Thomas Fischer


In the faces-config.xml of the sandbox jar, the standard renderer for the html 
form is overridden:
#begin snip from META-INF/faces-config.xml in tomahawk-sandbox.jar
<!-- extended standard renderers -->
<renderer>
   <component-family>javax.faces.Form</component-family>
   <renderer-type>javax.faces.Form</renderer-type>
   
<renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlFormRenderer</renderer-class>
</renderer>
#end snip from META-INF/faces-config.xml in tomahawk-sandbox.jar

This makes the sandbox jar practically inusable with any faces 1.2 
implementation and server-side state saving, as the token for identifying the 
state to deserialize after a postback is not rendered by the tomahawk-sandbox 
renderer. This leads to ViewExpiredExceptions when pressing the back button an 
re-submitting an already submitted form.

Apart from this specific misbehaviour, personally I think it is good style to 
leave the choice to the user whether he wants to override the standard 
behaviour or not. There might be people who want to retain standard behaviour 
but still want to use some sandbox components.

My suggested solution would be to remove the above snippet from the sandboxes 
faces-config.xml. Then, the user can override standard behaviour in his own 
faces-config.xml if he wishes to do so. 
Additionally, an extra form component+tag could be created for the sandbox form 
renderer.

If the myfaces developers think the addition of a custom component + rendere 
would be a good thing, I'd offer to write a patch.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to