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); + } }