[cvs] expresso commit by ppilgrim: Added properties `header', `footer',

JCorporate Ltd jcorp at jcorporate.com
Wed Mar 9 02:15:10 UTC 2005


Log Message:
-----------
Added properties `header', `footer', `prefix' and `suffix' for
compatibility with Struts 1.2.6 to the ErrorTag. Added the following
properties to the message resources should work wonders:

errors.header = <h3> You have errors </h3><ul>
errors.footer = </ul>
errors.prefix = <li><font color="red" >
errors.suffix = </li>

Modified Files:
--------------
    expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/taglib:
        ErrorTag.java

Revision Data
-------------
Index: ErrorTag.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/taglib/ErrorTag.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/taglib/ErrorTag.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/taglib/ErrorTag.java -u -r1.20 -r1.21
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/taglib/ErrorTag.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/taglib/ErrorTag.java
@@ -94,6 +94,12 @@
     private String property = null;
     private String nameToUse = null;
     private String cssClass = null;
+    
+    protected String header =  null;
+    protected String footer =  null;
+    protected String prefix =  null;
+    protected String suffix =  null;
+    
 
     /**
      *
@@ -127,15 +133,55 @@
 
                         //we have an errorcollection with some errors
                         JspWriter writer = pageContext.getOut();
-                        try {
-                            fsb.append(myResponse.getString("errors.header"));
-                        } catch (java.lang.IllegalArgumentException ex) {
-                            //We try to get it from the expresso schema if it
-                            //doesn't exist
-                            fsb.append(Messages.getString(com.jcorporate.expresso.core.ExpressoSchema.class.getName(),
-                                    (HttpServletRequest) pageContext.getRequest(),
-                                    "errors.header", new Object[]{}));
+                        
+                        
+                        String myHeader, myFooter;
+                        
+                        // Compute the HTML header 
+                        if ( header == null ) {
+                            // If no header is defined, attempt retrieve the header
+                            // from the message resource bundle, if any
+                            try {
+                                myHeader = myResponse.getString("errors.header");
+                            } catch (java.lang.IllegalArgumentException ex) {
+                                //We try to get it from the expresso schema if it
+                                //doesn't exist
+                                try {
+                                    myHeader = Messages.getString(com.jcorporate.expresso.core.ExpressoSchema.class.getName(),
+                                                    (HttpServletRequest) pageContext.getRequest(),
+                                                    "errors.header", new Object[]{});
+                                } catch (java.lang.IllegalArgumentException ex2) {
+                                    myHeader = "<ul>";
+                                }
+                            }
+                        }
+                        else { 
+                            myHeader = header;
+                        }
+
+                        // Compute the HTML footer
+                        if ( footer == null ) {
+                            // If no footer is defined, attempt retrieve the footer
+                            // from the message resource bundle, if any
+                            try {
+                                myFooter = myResponse.getString("errors.footer");
+                            } catch (java.lang.IllegalArgumentException ex) {
+                                //We try to get it from the expresso schema if it
+                                //doesn't exist
+                                try {
+                                    myFooter = Messages.getString(
+                                                    com.jcorporate.expresso.core.ExpressoSchema.class.getName(),
+                                                    (HttpServletRequest) pageContext.getRequest(),
+                                                     "errors.footer", new Object[]{});
+                                } catch (java.lang.IllegalArgumentException ex2) {
+                                    myFooter = "</ul>";
+                                }
+                            }
                         }
+                        else { 
+                            myFooter = footer;
+                        }
+                        
 //                    writer.println(myResponse.getString("errors.header"));
 
                         ActionMessage oneError = null;
@@ -146,9 +192,43 @@
                         } else {
                             iter = errorCollection.get(property);
                         }
+                        
+                        String myPrefix, mySuffix;
+                        
+                        // Compute user prefix
+                        if ( prefix == null ) {
+                            // If no user prefix is defined, attempt it from
+                            // the message resource, if possible
+                            // If no header is defined, attempt retrieve the header
+                            // from the message resource bundle, if any
+                            try {
+                                myPrefix = myResponse.getString("errors.header");
+                            } catch (java.lang.IllegalArgumentException ex) {
+                                myPrefix = "<li>";
+                            }
+                        }
+                        else 
+                            myPrefix = prefix;
+                        
+                        // Compute user suffix
+                        if ( suffix == null ) {
+                            // If no user prefix is defined, attempt it from
+                            // the message resource, if possible
+                            // If no header is defined, attempt retrieve the header
+                            // from the message resource bundle, if any
+                            try {
+                                mySuffix = myResponse.getString("errors.suffix");
+                            } catch (java.lang.IllegalArgumentException ex) {
+                                mySuffix = "</li>";
+                            }
+                        }
+                        else 
+                            mySuffix = suffix;
+                        
+                        writer.print( myHeader+"\n" );
                         while (iter.hasNext()) {
                             oneError = (ActionMessage) iter.next();
-                            fsb.append("  <li>");
+                            fsb.append("  "+myPrefix);
                             if (cssClass != null) {
                                 fsb.append("<span class=");
                                 fsb.append(cssClass);
@@ -158,28 +238,11 @@
                             if (cssClass != null) {
                                 fsb.append("</span>");
                             }
-                            fsb.append("</li>\n");
+                            fsb.append(mySuffix+"\n");
 //                        writer.println("  <LI>" + oneError.getKey() + "</LI>");
                         }
 
-                        try {
-                            String footer = myResponse.getString("errors.footer");
-                            if (footer != null && footer.length() > 0) {
-                                fsb.append(footer);
-                                fsb.append("\n");
-                            }
-                        } catch (java.lang.IllegalArgumentException ex) {
-                            //We try to get it from the expresso schema if it
-                            //doesn't exist
-                            String footer = Messages.getString(
-                                    com.jcorporate.expresso.core.ExpressoSchema.class.getName(),
-                                    (HttpServletRequest) pageContext.getRequest(),
-                                    "errors.footer", new Object[]{});
-                            if (footer != null && footer.length() > 0) {
-                                fsb.append(footer);
-                                fsb.append("\n");
-                            }
-                        }
+                        writer.print( myFooter+"\n" );
                         writer.print(fsb.toString());
                     }
                 } finally {
@@ -240,4 +303,70 @@
         cssClass = newClass;
     }
 
+
+    /**
+     * Gets the footer
+     * @return Returns the footer.
+     */
+    public String getFooter() {
+        return footer;
+    }
+    /**
+     * Sets the footer
+     *  @param footer The footer to set.
+     */
+    public void setFooter(String footer) {
+        this.footer = footer;
+    }
+    /**
+     * Gets the header
+     * @return Returns the header.
+     */
+    public String getHeader() {
+        return header;
+    }
+    /**
+     * Sets the header
+     *  @param header The header to set.
+     */
+    public void setHeader(String header) {
+        this.header = header;
+    }
+    /**
+     * Gets the prefix
+     * @return Returns the prefix.
+     */
+    public String getPrefix() {
+        return prefix;
+    }
+    /**
+     * Sets the prefix
+     *  @param prefix The prefix to set.
+     */
+    public void setPrefix(String prefix) {
+        this.prefix = prefix;
+    }
+    /**
+     * Gets the suffix
+     * @return Returns the suffix.
+     */
+    public String getSuffix() {
+        return suffix;
+    }
+    /**
+     * Sets the suffix
+     *  @param suffix The suffix to set.
+     */
+    public void setSuffix(String suffix) {
+        this.suffix = suffix;
+    }
+    
+    public void release() {
+        super.release();
+        header = "";
+        footer = "";
+        prefix = "";
+        suffix = "";
+        
+    }
 } /* ErrorTag */


More information about the cvs mailing list