You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2008/08/11 22:59:27 UTC
svn commit: r684924 - in
/myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared:
renderkit/ renderkit/html/ taglib/core/
Author: lu4242
Date: Mon Aug 11 13:59:26 2008
New Revision: 684924
URL: http://svn.apache.org/viewvc?rev=684924&view=rev
Log:
MYFACES-1897 escape value of a selectItem is never evaluated
Modified:
myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/JSFAttr.java
myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlCheckboxRendererBase.java
myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRadioRendererBase.java
myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java
myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/taglib/core/SelectItemTagBase.java
Modified: myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/JSFAttr.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/JSFAttr.java?rev=684924&r1=684923&r2=684924&view=diff
==============================================================================
--- myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/JSFAttr.java (original)
+++ myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/JSFAttr.java Mon Aug 11 13:59:26 2008
@@ -118,6 +118,7 @@
String ITEM_DESCRIPTION_ATTR = "itemDescription";
String ITEM_LABEL_ATTR = "itemLabel";
String ITEM_VALUE_ATTR = "itemValue";
+ String ITEM_ESCAPED_ATTR = "itemEscaped";
// UIData attributes
String ROWS_ATTR = "rows";
Modified: myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlCheckboxRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlCheckboxRendererBase.java?rev=684924&r1=684923&r2=684924&view=diff
==============================================================================
--- myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlCheckboxRendererBase.java (original)
+++ myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlCheckboxRendererBase.java Mon Aug 11 13:59:26 2008
@@ -208,7 +208,7 @@
boolean componentDisabled = isDisabled(facesContext, selectMany);
boolean itemDisabled = (componentDisabled || disabled);
- HtmlRendererUtils.renderLabel(writer, selectMany, itemId, selectItem.getLabel(), itemDisabled);
+ HtmlRendererUtils.renderLabel(writer, selectMany, itemId, selectItem, itemDisabled);
writer.endElement(HTML.TD_ELEM);
if (pageDirectionLayout)
Modified: myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRadioRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRadioRendererBase.java?rev=684924&r1=684923&r2=684924&view=diff
==============================================================================
--- myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRadioRendererBase.java (original)
+++ myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRadioRendererBase.java Mon Aug 11 13:59:26 2008
@@ -197,7 +197,7 @@
boolean componentDisabled = isDisabled(facesContext, selectOne);
boolean disabled = (componentDisabled || itemDisabled);
- HtmlRendererUtils.renderLabel(writer, selectOne, itemId, selectItem.getLabel(), disabled);
+ HtmlRendererUtils.renderLabel(writer, selectOne, itemId, selectItem, disabled);
writer.endElement(HTML.TD_ELEM);
if (pageDirectionLayout)
Modified: myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java?rev=684924&r1=684923&r2=684924&view=diff
==============================================================================
--- myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java (original)
+++ myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java Mon Aug 11 13:59:26 2008
@@ -472,19 +472,38 @@
if (component instanceof EscapeCapable)
{
escape = ((EscapeCapable)component).isEscape();
+
+ // Preserve tomahawk semantic. If escape=false
+ // all items should be non escaped. If escape
+ // is true check if selectItem.isEscape() is
+ // true and do it.
+ // This is done for remain compatibility.
+ if (escape && selectItem.isEscape())
+ {
+ writer.writeText(selectItem.getLabel(), null);
+ } else
+ {
+ writer.write(selectItem.getLabel());
+ }
}
else
{
escape = RendererUtils.getBooleanAttribute(component, JSFAttr.ESCAPE_ATTR,
- true); //default is to escape
- }
-
- if (escape || selectItem.isEscape())
- {
- writer.writeText(selectItem.getLabel(), null);
- } else
- {
- writer.write(selectItem.getLabel());
+ false);
+ //default is to escape
+ //In JSF 1.2, when a SelectItem is created by default
+ //selectItem.isEscape() returns true (this property
+ //is not available on JSF 1.1).
+ //so, if we found a escape property on the component
+ //set to true, escape every item, but if not
+ //check if isEscape() = true first.
+ if (escape || selectItem.isEscape())
+ {
+ writer.writeText(selectItem.getLabel(), null);
+ } else
+ {
+ writer.write(selectItem.getLabel());
+ }
}
writer.endElement(HTML.OPTION_ELEM);
@@ -1347,8 +1366,15 @@
}
/**
+ * @deprecated Replaced by
+ * renderLabel(ResponseWriter writer,
+ UIComponent component,
+ String forClientId,
+ SelectItem item,
+ boolean disabled).
* Renders a label HTML element
*/
+ @Deprecated
public static void renderLabel(ResponseWriter writer,
UIComponent component,
String forClientId,
@@ -1381,6 +1407,49 @@
writer.endElement(HTML.LABEL_ELEM);
}
+
+ /**
+ * Renders a label HTML element
+ */
+ public static void renderLabel(ResponseWriter writer,
+ UIComponent component,
+ String forClientId,
+ SelectItem item,
+ boolean disabled) throws IOException
+ {
+ writer.startElement(HTML.LABEL_ELEM, component);
+ writer.writeAttribute(HTML.FOR_ATTR, forClientId, null);
+
+ String labelClass = null;
+
+ if (disabled)
+ {
+ labelClass = (String) component.getAttributes().get(JSFAttr.DISABLED_CLASS_ATTR);
+ }
+ else
+ {
+ labelClass = (String) component.getAttributes().get(org.apache.myfaces.shared.renderkit.JSFAttr.ENABLED_CLASS_ATTR);
+ }
+ if (labelClass != null)
+ {
+ writer.writeAttribute("class", labelClass, "labelClass");
+ }
+
+ if ((item.getLabel() != null) && (item.getLabel().length() > 0))
+ {
+ writer.write(HTML.NBSP_ENTITY);
+ if(item.isEscape())
+ {
+ writer.writeText(item.getLabel(), null);
+ }
+ else
+ {
+ writer.write(item.getLabel());
+ }
+ }
+
+ writer.endElement(HTML.LABEL_ELEM);
+ }
/**
* Render the javascript function that is called on a click on a commandLink
Modified: myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/taglib/core/SelectItemTagBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/taglib/core/SelectItemTagBase.java?rev=684924&r1=684923&r2=684924&view=diff
==============================================================================
--- myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/taglib/core/SelectItemTagBase.java (original)
+++ myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/taglib/core/SelectItemTagBase.java Mon Aug 11 13:59:26 2008
@@ -57,7 +57,7 @@
setStringProperty(component, JSFAttr.ITEM_DESCRIPTION_ATTR, _itemDescription);
setStringProperty(component, org.apache.myfaces.shared.renderkit.JSFAttr.ITEM_LABEL_ATTR, _itemLabel);
setStringProperty(component, JSFAttr.ITEM_VALUE_ATTR, _itemValue);
- setBooleanProperty(component, JSFAttr.ESCAPE_ATTR, _escape, Boolean.TRUE);
+ setBooleanProperty(component, JSFAttr.ITEM_ESCAPED_ATTR, _escape, Boolean.TRUE);
}
public void setItemDisabled(ValueExpression itemDisabled)