| From | Sent On | Attachments |
|---|---|---|
| Ed Burns | Feb 16, 2005 3:04 pm | |
| Craig R. McClanahan | Feb 16, 2005 3:17 pm | |
| Ed Burns | Feb 16, 2005 7:00 pm | |
| Craig R. McClanahan | Feb 16, 2005 7:14 pm | |
| Adam Winer | Feb 17, 2005 8:49 am | |
| Adam Winer | Feb 17, 2005 9:28 am |
| Subject: | Re: Seeking Review [NEW] add escape attribute to Label renderer | |
|---|---|---|
| From: | Craig R. McClanahan (Crai...@Sun.COM) | |
| Date: | Feb 16, 2005 3:17:43 pm | |
| List: | net.java.dev.javaserverfaces.dev | |
Ed Burns wrote:
[NEW] add escape attribute to Label renderer.
CRAIG: ok with this resolution?
I'm fine except for a nitpick and a documentation issue.
* Nitpick -- you shouldn't be editing (or checking in) xxx-attrs.xml files ... they get generated from the corresponding xxx-props.xml files (or at least they used to).
* Documentation issue -- there are discrepancies in the various places you describe the default value for this attribute. I agree that the default should be false, but in some places you've got it described as true.
Craig
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<p>this markup</p>
+ <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





