atom feed6 messages in net.java.dev.javaserverfaces.devSeeking Review [NEW] add escape attri...
FromSent OnAttachments
Ed BurnsFeb 16, 2005 3:04 pm 
Craig R. McClanahanFeb 16, 2005 3:17 pm 
Ed BurnsFeb 16, 2005 7:00 pm 
Craig R. McClanahanFeb 16, 2005 7:14 pm 
Adam WinerFeb 17, 2005 8:49 am 
Adam WinerFeb 17, 2005 9:28 am 
Subject:Seeking Review [NEW] add escape attribute to Label renderer
From:Ed Burns (Ed.B@Sun.COM)
Date:Feb 16, 2005 3:04:10 pm
List:net.java.dev.javaserverfaces.dev

[NEW] add escape attribute to Label renderer.

CRAIG: ok with this resolution?

SECTION: API Changes

M jsf-api/doc/output-label-attrs.xml M jsf-api/doc/output-label-props.xml

- add escape attribute. Defaults to "false" for compatability with existing implementation.

M jsf-api/doc/standard-html-renderkit.xml

- output of executing create.standard.xml

SECTION: RI Changes

M jsf-ri/src/com/sun/faces/renderkit/html_basic/LabelRenderer.java

- honor the "escape" attribute, if present

M jsf-ri/web/test/RenderResponse_correct M jsf-ri/web/test/TestRenderResponsePhase.jsp

- new test content

SECTION: API Diffs

Index: jsf-api/doc/output-label-attrs.xml =================================================================== RCS file: /cvs/javaserverfaces-sources/jsf-api/doc/output-label-attrs.xml,v retrieving revision 1.5 diff -u -r1.5 output-label-attrs.xml --- jsf-api/doc/output-label-attrs.xml 8 Nov 2004 19:23:00 -0000 1.5 +++ jsf-api/doc/output-label-attrs.xml 16 Feb 2005 23:00:33 -0000 @@ -35,5 +35,19 @@ <required>false</required> </attribute-extension> </attribute> + <attribute> + <description> + Flag indicating that characters that are sensitive + in HTML and XML markup must be escaped. This flag + is set to "true" by default. + </description> + <display-name>Escape Characters</display-name> + <icon></icon> + <attribute-name>escape</attribute-name> + <attribute-class>boolean</attribute-class> + <attribute-extension> + <default-value>true</default-value> + </attribute-extension> + </attribute> </root>

Index: jsf-api/doc/output-label-props.xml =================================================================== RCS file: /cvs/javaserverfaces-sources/jsf-api/doc/output-label-props.xml,v retrieving revision 1.5 diff -u -r1.5 output-label-props.xml --- jsf-api/doc/output-label-props.xml 8 Nov 2004 19:23:00 -0000 1.5 +++ jsf-api/doc/output-label-props.xml 16 Feb 2005 23:00:33 -0000 @@ -35,5 +35,19 @@ <required>false</required> </property-extension> </property> + <property> + <description> + Flag indicating that characters that are sensitive + in HTML and XML markup must be escaped. If omitted, this + flag is assumed to be "false". + </description> + <display-name>Escape Characters</display-name> + <icon></icon> + <property-name>escape</property-name> + <property-class>boolean</property-class> + <property-extension> + <default-value>false</default-value> + </property-extension> + </property> </root>

Index: jsf-api/doc/standard-html-renderkit.xml =================================================================== RCS file: /cvs/javaserverfaces-sources/jsf-api/doc/standard-html-renderkit.xml,v retrieving revision 1.71 diff -u -r1.71 standard-html-renderkit.xml --- jsf-api/doc/standard-html-renderkit.xml 12 Jan 2005 23:11:58 -0000 1.71 +++ jsf-api/doc/standard-html-renderkit.xml 16 Feb 2005 23:00:54 -0000 @@ -9715,6 +9715,20 @@ <required>false</required> </property-extension> </property> + <property> + <description> + Flag indicating that characters that are sensitive + in HTML and XML markup must be escaped. This flag + is set to "true" by default. + </description> + <display-name>Escape Characters</display-name> + <icon/> + <property-name>escape</property-name> + <property-class>boolean</property-class> + <property-extension> + <default-value>true</default-value> + </property-extension> + </property>

<component-extension> <base-component-type>javax.faces.Output</base-component-type> @@ -19671,6 +19685,20 @@ <attribute-class>java.lang.String</attribute-class> <attribute-extension> <required>false</required> + </attribute-extension> + </attribute> + <attribute> + <description> + Flag indicating that characters that are sensitive + in HTML and XML markup must be escaped. This flag + is set to "true" by default. + </description> + <display-name>Escape Characters</display-name> + <icon/> + <attribute-name>escape</attribute-name> + <attribute-class>boolean</attribute-class> + <attribute-extension> + <default-value>true</default-value> </attribute-extension> </attribute>

SECTION: RI Diffs

Index: jsf-ri/src/com/sun/faces/renderkit/html_basic/LabelRenderer.java =================================================================== RCS file:
/cvs/javaserverfaces-sources/jsf-ri/src/com/sun/faces/renderkit/html_basic/LabelRenderer.java,v retrieving revision 1.33 diff -u -r1.33 LabelRenderer.java --- jsf-ri/src/com/sun/faces/renderkit/html_basic/LabelRenderer.java 16 Dec 2004
17:56:37 -0000 1.33 +++ jsf-ri/src/com/sun/faces/renderkit/html_basic/LabelRenderer.java 16 Feb 2005
23:00:56 -0000 @@ -130,7 +130,26 @@ log.trace("Value to be rendered " + value); } if (value != null && value.length() != 0) { - writer.write(value); + boolean escape = false; + Object val = null; + if (null != (val = component.getAttributes().get("escape"))) { + if (val instanceof Boolean) { + escape = ((Boolean) val).booleanValue(); + } else if (val instanceof String) { + try { + escape = + Boolean.valueOf((String) val).booleanValue(); + } catch (Throwable e) { + } + } + } + + if (escape) { + writer.writeText(value, "value"); + } + else { + writer.write(value); + } } writer.flush(); } Index: jsf-ri/web/test/RenderResponse_correct =================================================================== RCS file: /cvs/javaserverfaces-sources/jsf-ri/web/test/RenderResponse_correct,v retrieving revision 1.114 diff -u -r1.114 RenderResponse_correct --- jsf-ri/web/test/RenderResponse_correct 12 Jan 2005 21:37:35 -0000 1.114 +++ jsf-ri/web/test/RenderResponse_correct 16 Feb 2005 23:00:58 -0000 @@ -15,7 +15,7 @@

-<form id="basicForm" method="post"
action="/test/faces/TestRenderResponsePhase.jsp;jsessionid=676E0FBF879741B55500B45B856C6622"
class="formClass" accept-charset="some-charset" accept="html,wml"
enctype="application/x-www-form-urlencoded" target="_self" title="basicForm"> +<form id="basicForm" method="post"
action="/test/faces/TestRenderResponsePhase.jsp;jsessionid=A12DCFE1689DC35610E2C994C3D05E2C"
class="formClass" accept-charset="some-charset" accept="html,wml"
enctype="application/x-www-form-urlencoded" target="_self" title="basicForm">

<TABLE BORDER="1"> @@ -130,12 +130,12 @@

- <a id="basicForm:imageLink" href="#" style="someStyle"
onclick="clearFormHiddenParams_basicForm('basicForm');document.forms['basicForm']['basicForm:_idcl'].value='basicForm:imageLink';
document.forms['basicForm'].submit(); return false;"><img
src="duke.gif;jsessionid=676E0FBF879741B55500B45B856C6622" /></a> + <a id="basicForm:imageLink" href="#" style="someStyle"
onclick="clearFormHiddenParams_basicForm('basicForm');document.forms['basicForm']['basicForm:_idcl'].value='basicForm:imageLink';
document.forms['basicForm'].submit(); return false;"><img
src="duke.gif;jsessionid=A12DCFE1689DC35610E2C994C3D05E2C" /></a>

</TD>

<TD> - <img id="basicForm:graphicImage"
src="/test/duke.gif;jsessionid=676E0FBF879741B55500B45B856C6622"
style="someStyle" usemap="#map1" ismap="ismap" /> + <img id="basicForm:graphicImage"
src="/test/duke.gif;jsessionid=A12DCFE1689DC35610E2C994C3D05E2C"
style="someStyle" usemap="#map1" ismap="ismap" /> </TD>

</TR> @@ -169,7 +169,7 @@

- <a id="basicForm:hrefParamLink" href="#"
onclick="clearFormHiddenParams_basicForm('basicForm');document.forms['basicForm']['basicForm:_idcl'].value='basicForm:hrefParamLink';document.forms['basicForm']['name'].value='horwat';document.forms['basicForm']['value'].value='password';
document.forms['basicForm'].target='_top'; document.forms['basicForm'].submit();
return false;"><img src="duke.gif;jsessionid=676E0FBF879741B55500B45B856C6622"
/></a> + <a id="basicForm:hrefParamLink" href="#"
onclick="clearFormHiddenParams_basicForm('basicForm');document.forms['basicForm']['basicForm:_idcl'].value='basicForm:hrefParamLink';document.forms['basicForm']['name'].value='horwat';document.forms['basicForm']['value'].value='password';
document.forms['basicForm'].target='_top'; document.forms['basicForm'].submit();
return false;"><img src="duke.gif;jsessionid=A12DCFE1689DC35610E2C994C3D05E2C"
/></a> </TD> </TR>

@@ -177,7 +177,7 @@

<TD>

- <a id="basicForm:outputLink"
href="test.html;jsessionid=676E0FBF879741B55500B45B856C6622"
class="hyperlinkClass">output link text</a> + <a id="basicForm:outputLink"
href="test.html;jsessionid=A12DCFE1689DC35610E2C994C3D05E2C"
class="hyperlinkClass">output link text</a>

</TD>

@@ -189,12 +189,12 @@

- <a id="basicForm:output_imageLink"
href="test.html;jsessionid=676E0FBF879741B55500B45B856C6622" style="position:
absolute; left: 96px; top: 168px"><img
src="duke.gif;jsessionid=676E0FBF879741B55500B45B856C6622" /></a> + <a id="basicForm:output_imageLink"
href="test.html;jsessionid=A12DCFE1689DC35610E2C994C3D05E2C" style="position:
absolute; left: 96px; top: 168px"><img
src="duke.gif;jsessionid=A12DCFE1689DC35610E2C994C3D05E2C" /></a>

</TD>

<TD> - <img id="basicForm:output_graphicImage"
src="/test/duke.gif;jsessionid=676E0FBF879741B55500B45B856C6622" usemap="#map1"
ismap="ismap" /> + <img id="basicForm:output_graphicImage"
src="/test/duke.gif;jsessionid=A12DCFE1689DC35610E2C994C3D05E2C" usemap="#map1"
ismap="ismap" /> </TD>

</TR> @@ -202,7 +202,7 @@ <TR> <TD>

- <a id="basicForm:output_commandLink"
href="test.html;jsessionid=676E0FBF879741B55500B45B856C6622" style="position:
absolute; left: 96px; top: 168px" class="hyperlinkClass">link text</a> + <a id="basicForm:output_commandLink"
href="test.html;jsessionid=A12DCFE1689DC35610E2C994C3D05E2C" style="position:
absolute; left: 96px; top: 168px" class="hyperlinkClass">link text</a> </TD> </TR>

@@ -212,13 +212,13 @@

- <a id="basicForm:output_commandParamLink"
href="test.html;jsessionid=676E0FBF879741B55500B45B856C6622?name=horwat&value=password"
class="hyperlinkClass">link text</a> + <a id="basicForm:output_commandParamLink"
href="test.html;jsessionid=A12DCFE1689DC35610E2C994C3D05E2C?name=horwat&value=password"
class="hyperlinkClass">link text</a> </TD> </TR>

<TR> <TD> - <a id="basicForm:output_hrefLink"
href="test.html;jsessionid=676E0FBF879741B55500B45B856C6622"><img
src="duke.gif"></a> + <a id="basicForm:output_hrefLink"
href="test.html;jsessionid=A12DCFE1689DC35610E2C994C3D05E2C"><img
src="duke.gif"></a> </TD> </TR>

@@ -228,7 +228,7 @@

- <a id="basicForm:output_hrefParamLink"
href="test.html;jsessionid=676E0FBF879741B55500B45B856C6622?name=horwat&value=password"><img
src="duke.gif;jsessionid=676E0FBF879741B55500B45B856C6622" /></a> + <a id="basicForm:output_hrefParamLink"
href="test.html;jsessionid=A12DCFE1689DC35610E2C994C3D05E2C?name=horwat&value=password"><img
src="duke.gif;jsessionid=A12DCFE1689DC35610E2C994C3D05E2C" /></a> </TD> </TR>

@@ -311,6 +311,19 @@ </TD>

</TR> + + <TR> + <TD> + <label id="basicForm:labe18" for="basicForm:checkbox8"> +escape&lt;p&gt;this markup&lt;/p&gt; + <span id="basicForm:outputlabel8">andsometext</span> + </label> + + <input id="basicForm:checkbox8" type="checkbox"
name="basicForm:checkbox8" class="selectbooleanClass" /> + </TD> + + </TR> + <TR>

<TD> Index: jsf-ri/web/test/TestRenderResponsePhase.jsp =================================================================== RCS file:
/cvs/javaserverfaces-sources/jsf-ri/web/test/TestRenderResponsePhase.jsp,v retrieving revision 1.85 diff -u -r1.85 TestRenderResponsePhase.jsp --- jsf-ri/web/test/TestRenderResponsePhase.jsp 12 Jan 2005 21:37:35 -0000 1.85 +++ jsf-ri/web/test/TestRenderResponsePhase.jsp 16 Feb 2005 23:00:59 -0000 @@ -303,6 +303,19 @@ </TD>

</TR> + + <TR> + <TD> + <h:outputLabel id="labe18" for="checkbox8" escape="true"
value="escape<p>this markup</p>"> + <h:outputText id="outputlabel8" value="andsometext"/> + </h:outputLabel> + + <h:selectBooleanCheckbox id="checkbox8" rendered="true" + styleClass="selectbooleanClass" /> + </TD> + + </TR> + <TR>

<TD>

SECTION: Files changed

M jsf-api/doc/output-label-attrs.xml M jsf-api/doc/output-label-props.xml M jsf-ri/src/com/sun/faces/renderkit/html_basic/LabelRenderer.java M jsf-ri/web/test/RenderResponse_correct M jsf-ri/web/test/TestRenderResponsePhase.jsp