craigmcc 2003/03/09 17:57:31 Modified: src/share/org/apache/struts/taglib/html FormTag.java JavascriptValidatorTag.java web/test/test/org/apache/struts/taglib/html TestFormTag1.jsp Log: Clean up the JavaScript code generation to not use string concatenation, and make the line-end generation platform independent so that Cactus tests can pass on Linux. Revision Changes Path 1.45 +46 -21 jakarta-struts/src/share/org/apache/struts/taglib/html/FormTag.java Index: FormTag.java =================================================================== RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/FormTag.java,v retrieving revision 1.44 retrieving revision 1.45 diff -u -r1.44 -r1.45 --- FormTag.java 8 Mar 2003 19:23:49 -0000 1.44 +++ FormTag.java 10 Mar 2003 01:57:30 -0000 1.45 @@ -125,6 +125,11 @@ protected String focusIndex = null; /** + * The line ending string. + */ + protected static String lineEnd = System.getProperty("line.separator"); + + /** * The ActionMapping defining where we will be submitting this form */ protected ActionMapping mapping = null; @@ -629,35 +634,56 @@ // Render JavaScript to set the input focus if required if (this.focus != null) { - results.append("\r\n"); + + results.append(lineEnd); results.append(this.getJsStartElement()); // xhtml script content shouldn't use the browser hiding trick if (!this.isXhtml()) { - results.append(" <!--\r\n"); + results.append(" <!--"); + results.append(lineEnd); } // Construct the control name that will receive focus. // This does not include any index. - String focusControl = - "document.forms[\"" + beanName + "\"].elements[\"" + this.focus + "\"]"; + StringBuffer focusControl = new StringBuffer("document.forms[\""); + focusControl.append(beanName); + focusControl.append("\"].elements[\""); + focusControl.append(this.focus); + focusControl.append("\"]"); + + results.append(" var focusControl = "); + results.append(focusControl.toString()); + results.append(";"); + results.append(lineEnd); + results.append(lineEnd); - results.append(" var focusControl = " + focusControl + ";\r\n\r\n"); - - results.append(" if (focusControl.type != \"hidden\") {\r\n"); + results.append(" if (focusControl.type != \"hidden\") {"); + results.append(lineEnd); // Construct the index if needed and insert into focus statement String index = ""; if (this.focusIndex != null) { - index = "[" + this.focusIndex + "]"; + StringBuffer sb = new StringBuffer("["); + sb.append(this.focusIndex); + sb.append("]"); + index = sb.toString(); } - results.append(" focusControl" + index + ".focus();\r\n } \r\n"); + results.append(" focusControl"); + results.append(index); + results.append(".focus();"); + results.append(lineEnd); + + results.append(" }"); + results.append(lineEnd); if (!this.isXhtml()) { - results.append(" // -->\r\n"); + results.append(" // -->"); + results.append(lineEnd); } - results.append("</script>\r\n"); + results.append("</script>"); + results.append(lineEnd); } // Print this value to our output writer @@ -763,14 +789,13 @@ * Returns the starting javascript element formatted for xhtml if needed. */ private String getJsStartElement() { - String start = "<script type=\"text/javascript\""; - + StringBuffer sb = new StringBuffer("<script type=\"text/javascript\""); if (!this.isXhtml()) { - start += " language=\"JavaScript\""; + sb.append(" language=\"JavaScript\""); } - start += ">\r\n"; - - return start; + sb.append(">"); + sb.append(lineEnd); + return sb.toString(); } /** 1.24 +9 -4 jakarta-struts/src/share/org/apache/struts/taglib/html/JavascriptValidatorTag.java Index: JavascriptValidatorTag.java =================================================================== RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/JavascriptValidatorTag.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- JavascriptValidatorTag.java 8 Mar 2003 19:23:49 -0000 1.23 +++ JavascriptValidatorTag.java 10 Mar 2003 01:57:31 -0000 1.24 @@ -118,6 +118,11 @@ protected String formName = null; /** + * The line ending string. + */ + protected static String lineEnd = System.getProperty("line.separator"); + + /** * The current page number of a multi-part form. * Only valid when the formName attribute is set. */ 1.2 +3 -3 jakarta-struts/web/test/test/org/apache/struts/taglib/html/TestFormTag1.jsp Index: TestFormTag1.jsp =================================================================== RCS file: /home/cvs/jakarta-struts/web/test/test/org/apache/struts/taglib/html/TestFormTag1.jsp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- TestFormTag1.jsp 7 Mar 2003 05:38:24 -0000 1.1 +++ TestFormTag1.jsp 10 Mar 2003 01:57:31 -0000 1.2 @@ -43,7 +43,7 @@ if (focusControl.type != "hidden") { focusControl.focus(); - } + } // --> </script> </bean:define> @@ -64,7 +64,7 @@ if (focusControl.type != "hidden") { focusControl[2].focus(); - } + } // --> </script> </bean:define> @@ -215,4 +215,4 @@ } Assert.assertEquals(compareTo, expected); -%> \ No newline at end of file +%>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]