AbstractOptions of Palette may cause an HTML error with illegal chars
---------------------------------------------------------------------

                 Key: WICKET-2407
                 URL: https://issues.apache.org/jira/browse/WICKET-2407
             Project: Wicket
          Issue Type: Bug
          Components: wicket-extensions
    Affects Versions: 1.3.6
         Environment: Win XP, embedded Jetty / JBOss
            Reporter: Eyal Golan


We encountered a small problem in our Palette.
Some of the values that were supposed to be in the choices (available and/or 
selected) had the '<' and '>' .
Because of that the options weren't rendererd correctly.
Looking at AbstractAction#onComponentTagBody I saw that it takes the value as 
it is and put it in the html:
String value = getConverter(displayClass).convertToString(displayValue, 
getLocale());
where displayValue is Object displayValue = renderer.getDisplayValue(choice);

Example fix:
In my code I overridden the getDisplayValue and getDisplayId of the renderer:
        IChoiceRenderer choiceRenderer = new ChoiceRenderer("getFieldName", 
"getFieldName") {
            private static final long serialVersionUID = 1L;

            @Override
            public Object getDisplayValue(Object object) {
                final String result = (String) super.getDisplayValue(object);
                return Strings.escapeMarkup(result, true, true).toString();
            }
           
            @Override
            public String getIdValue(Object object, int index) {
                final String result = (String) super.getIdValue(object, index);
                return Strings.escapeMarkup(result, true, true).toString();
            }
        };

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