Hi

There is a change introduced on MYFACES-2372. The renderkit javadoc says
this:

".....If the component being rendered by this renderer has any UIParameter
children, each one of them must be rendered using the renderer for
component-family: "javax.faces.Input" and renderer-type:
"javax.faces.Hidden". For discussion, this is called the hiddenRenderer. A
component with component-type "javax.faces.Input" must be created for local
use in rendering each UIParameter child. The "id" property of the temporary
component must be set to the "name" of the UIParameter. The "value" property
of the temporary component must be set to the "value" of the UIParameter.
For each UIParameter  child, the hiddenRenderer must have its encodeBegin(),
encodeChildren(), and encodeEnd() methods called, in order, passing the
temporary component as the second argument....."

So, we put the code at the end of HtmlButtonRendererBase.encodeEnd(). In
theory if you set the web config para
org.apache.myfaces.RENDER_CLEAR_JAVASCRIPT_FOR_BUTTON to true, the required
javascript that clear hidden fields will be set and the problem you mention
dissapear.

I'll check this one (it is necessary to track this one from 1.2), but it
will take some time, right now I'm busy implementing
composite:clientBehavior tag.

regards,

Leonardo Uribe

2010/5/6 Curtiss Howard <[email protected]>

> Hi,
>
> Our tester has found an issue that apparently is not tested in CTS but
> nonetheless is a bug with MyFaces (confirmed that it does not occur
> with Glassfish).
>
> Let's say we have the following:
>
> <h:commandButton ...>
>  <f:param name="paramName" value="value1" />
> </h:commandButton>
> <h:commandButton ...>
>  <f:param name="paramName" value="value2" />
> </h:commandButton>
>
> We'll render two buttons and two hidden inputs with the name
> "paramName" but two different values.  The problem is that one value
> will clobber the other and you don't get the value you expect when
> clicking the second button.  Obviously the fix is to make the logic in
> HtmlButtonRendererBase behave like the link case, where onclick
> Javascript is rendered to dynamically set the correct parameter value
> depending on which button was clicked.  I've spent some time trying to
> do this by reusing the oamSubmit() code, but it doesn't seem to work
> (looks like the target makes it open another browser window and in our
> case, we do navigation based on the param, and that navigation never
> occurs).  Unfortunately due to other obligations I'm not sure that I
> have the time to really fix this "correctly" right away.  I think
> there are a couple of cases that have to be handled... rendering this
> JS when there's no onclick, when there is an onclick, when behaviors
> are attached, etc.  It's a bit too much for me to get into at the
> moment and I'm not that familiar with this portion of the code.  Is
> there anyone out there willing to lend a hand?
>
> Thanks in advance,
>
>
> Curtiss Howard
>

Reply via email to