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

Leonardo Uribe commented on MYFACES-1897:
-----------------------------------------

Hi Paul

I have some suggestions about the patch provided (myfaces-1897-2.patch):

1. Look jsf tlddoc documentation for 1.2_MR1

http://java.sun.com/javaee/javaserverfaces/1.2_MR1/docs/tlddocs/

 It is not necessary to modify JSFAttr and SelectItemTagBase, since the code is 
correct.

2. There was a recent change on tomahawk core 1.2 class HtmlRadioRenderer that 
calls renderLabel method, so a new patch including the change on this class is 
needed. Personally I prefer let the old method and include a new one with 
escape capability, rather than remove it, (if it is necessary put the old one 
as deprecated).

3. Run the test I provided with jsf ri 1.2_09 (it has the correct behavior for 
all components). I can see the solution but only for two components, not all 
six.

> escape value of a selectItem is never evaluated
> -----------------------------------------------
>
>                 Key: MYFACES-1897
>                 URL: https://issues.apache.org/jira/browse/MYFACES-1897
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-252
>    Affects Versions: 1.2.3
>            Reporter: Jörg Rothbarth
>            Assignee: Leonardo Uribe
>         Attachments: myfaces-1897-2.patch, SelectItemEscapeBean.java, 
> selectOneManyEscape.jsp, tomahawk12-HtmlCheckboxRenderer.patch
>
>
> The escape Attribute of a selectItem Component is not evaluated inside a 
> selectOneRadio component.
> The selectItem Component has a escape member, but the member is never used. 
> To fix the problem i've done this:
> HtmlRadioRendererBase.renderGroupOrItemRadio() Line ~199 :
> // label element after the input
> boolean componentDisabled = isDisabled(facesContext, selectOne);
> boolean disabled = (componentDisabled || itemDisabled);
> boolean escape = selectItem.isEscape();
> HtmlRendererUtils.renderLabel(writer, selectOne, itemId,
>                 selectItem.getLabel(), disabled,escape);
> HtmlRendererUtils.renderLabel() Line ~1352:
> public static void renderLabel(ResponseWriter writer, UIComponent    
>     component, String forClientId,String labelValue, boolean    
>                 disabled) throws IOException {
> renderLabel(writer, component, forClientId, labelValue, disabled, true);
> }
> /**
>  * Renders a label HTML element
>  */
> public static void renderLabel(ResponseWriter writer, UIComponent
>             component, String forClientId,String labelValue,         boolean 
> disabled, boolean escape) throws IOException {
> ...
> if ((labelValue != null) && (labelValue.length() > 0)) {
>     writer.write(HTML.NBSP_ENTITY);
>     if (escape) {
>         writer.writeText(labelValue, null);
>     } else {
>         writer.write(labelValue);
>     }
> }
> ... 

-- 
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