Author: mcucchiara
Date: Wed Mar 23 16:24:09 2011
New Revision: 1084628

URL: http://svn.apache.org/viewvc?rev=1084628&view=rev
Log:
WW-3598 - FieldErrorHandler in javatemplates plugin does not respond to escape 
attribute (thanks Gareth Faires)

Modified:
    
struts/struts2/trunk/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/FieldErrorHandler.java

Modified: 
struts/struts2/trunk/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/FieldErrorHandler.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/FieldErrorHandler.java?rev=1084628&r1=1084627&r2=1084628&view=diff
==============================================================================
--- 
struts/struts2/trunk/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/FieldErrorHandler.java
 (original)
+++ 
struts/struts2/trunk/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/FieldErrorHandler.java
 Wed Mar 23 16:24:09 2011
@@ -33,46 +33,49 @@ public class FieldErrorHandler extends A
         Map<String, List<String>> errors = (Map<String, List<String>>) 
findValue("fieldErrors");
         List<String> fieldErrorFieldNames = (List<String>) 
params.get("errorFieldNames");
 
-        if (fieldErrorFieldNames != null && !fieldErrorFieldNames.isEmpty()) {
-            //wrapping ul
-            Attributes attrs = new Attributes();
-            attrs.addIfExists("style", params.get("cssStyle"))
-                    .add("class", params.containsKey("cssClass") ? (String) 
params.get("cssClass") : "errorMessage");
-            start("ul", attrs);
+        if (fieldErrorFieldNames != null && !fieldErrorFieldNames.isEmpty() && 
errors != null && !errors.isEmpty()) {
+            startUL(params);
 
             //iterate over field error names
             for (String fieldErrorFieldName : fieldErrorFieldNames) {
                 List<String> fieldErrors = errors.get(fieldErrorFieldName);
                 if (fieldErrors != null) {
                     for (String fieldError : fieldErrors) {
-                        start("li", null);
-                        start("span", null);
-                        characters(fieldError);
-                        end("span");
-                        end("li");
+                        writeError(params, fieldError);
                     }
                 }
             }
 
-            end("ul");
+            endUL();
         } else if (errors != null && !errors.isEmpty()) {
-            //wrapping ul
-            Attributes attrs = new Attributes();
-            attrs.addIfExists("style", params.get("cssStyle"))
-                    .add("class", params.containsKey("cssClass") ? (String) 
params.get("cssClass") : "errorMessage");
-            start("ul", attrs);
+            startUL(params);
 
             for (Map.Entry<String, List<String>> errorEntry : 
errors.entrySet()) {
                 for (String fieldError : errorEntry.getValue()) {
-                    start("li", null);
-                    start("span", null);
-                    characters(fieldError);
-                    end("span");
-                    end("li");
+                    writeError(params, fieldError);
                 }
             }
 
-            end("ul");
+            endUL();
         }
     }
+
+    private void endUL() throws IOException {
+        end("ul");
+    }
+
+    private void writeError(Map<String, Object> params, String fieldError) 
throws IOException {
+        start("li", null);
+        start("span", null);
+        characters(fieldError, params.containsKey("escape") ? (Boolean) 
params.get("escape") : true);
+        end("span");
+        end("li");
+    }
+
+    private void startUL(Map<String, Object> params) throws IOException {
+        Attributes attrs = new Attributes();
+        attrs.addIfExists("style", params.get("cssStyle"))
+                .add("class", params.containsKey("cssClass") ? (String) 
params.get("cssClass") : "errorMessage");
+        start("ul", attrs);
+    }
 }


Reply via email to