You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by cr...@apache.org on 2001/04/19 01:32:35 UTC
cvs commit: jakarta-struts/src/share/org/apache/struts/util MessageResources.java RequestUtils.java
craigmcc 01/04/18 16:32:35
Modified: src/share/org/apache/struts/taglib/html ErrorsTag.java
src/share/org/apache/struts/util MessageResources.java
RequestUtils.java
Log:
Make it possible to omit the "errors.header" and "errors.footer" message
keys in your application resources, if you do not want them. Previously,
the <html:errors> tag would display "missing message" errors for these
keys if you set the "null" initialization parameter for the controller
servlet to false.
PR: Bugzilla #1036
Submitted by: Wes Price <wp...@metronet.com>
Revision Changes Path
1.8 +18 -8 jakarta-struts/src/share/org/apache/struts/taglib/html/ErrorsTag.java
Index: ErrorsTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/ErrorsTag.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ErrorsTag.java 2001/02/20 03:11:20 1.7
+++ ErrorsTag.java 2001/04/18 23:32:34 1.8
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/ErrorsTag.java,v 1.7 2001/02/20 03:11:20 craigmcc Exp $
- * $Revision: 1.7 $
- * $Date: 2001/02/20 03:11:20 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/ErrorsTag.java,v 1.8 2001/04/18 23:32:34 craigmcc Exp $
+ * $Revision: 1.8 $
+ * $Date: 2001/04/18 23:32:34 $
*
* ====================================================================
*
@@ -98,7 +98,7 @@
* </ul>
*
* @author Craig R. McClanahan
- * @version $Revision: 1.7 $ $Date: 2001/02/20 03:11:20 $
+ * @version $Revision: 1.8 $ $Date: 2001/04/18 23:32:34 $
*/
public class ErrorsTag extends TagSupport {
@@ -225,10 +225,18 @@
if (errors.empty())
return (EVAL_BODY_INCLUDE);
+ // Check for presence of header and footer message keys
+ boolean headerPresent =
+ RequestUtils.present(pageContext, bundle, locale, "errors.header");
+ boolean footerPresent =
+ RequestUtils.present(pageContext, bundle, locale, "errors.footer");
+
// Render the error messages appropriately
StringBuffer results = new StringBuffer();
- String message = RequestUtils.message(pageContext, bundle,
- locale, "errors.header");
+ String message = null;
+ if (headerPresent)
+ message = RequestUtils.message(pageContext, bundle,
+ locale, "errors.header");
if (message != null) {
results.append(message);
results.append("\r\n");
@@ -248,8 +256,10 @@
results.append("\r\n");
}
}
- message = RequestUtils.message(pageContext, bundle,
- locale, "errors.footer");
+ message = null;
+ if (footerPresent)
+ message = RequestUtils.message(pageContext, bundle,
+ locale, "errors.footer");
if (message != null) {
results.append(message);
results.append("\r\n");
1.10 +38 -4 jakarta-struts/src/share/org/apache/struts/util/MessageResources.java
Index: MessageResources.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/MessageResources.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- MessageResources.java 2001/02/12 00:32:13 1.9
+++ MessageResources.java 2001/04/18 23:32:35 1.10
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/MessageResources.java,v 1.9 2001/02/12 00:32:13 craigmcc Exp $
- * $Revision: 1.9 $
- * $Date: 2001/02/12 00:32:13 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/MessageResources.java,v 1.10 2001/04/18 23:32:35 craigmcc Exp $
+ * $Revision: 1.10 $
+ * $Date: 2001/04/18 23:32:35 $
*
* ====================================================================
*
@@ -89,7 +89,7 @@
* application server environments.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.9 $ $Date: 2001/02/12 00:32:13 $
+ * @version $Revision: 1.10 $ $Date: 2001/04/18 23:32:35 $
*/
public abstract class MessageResources implements Serializable {
@@ -416,6 +416,40 @@
args[2] = arg2;
args[3] = arg3;
return (getMessage(locale, key, args));
+
+ }
+
+
+ /**
+ * Return <code>true</code> if there is a defined message for the specified
+ * key in the system default locale.
+ *
+ * @param key The message key to look up
+ */
+ public boolean isPresent(String key) {
+
+ return (isPresent(null, key));
+
+ }
+
+
+ /**
+ * Return <code>true</code> if there is a defined message for the specified
+ * key in the specified Locale.
+ *
+ * @param locale The requested message Locale, or <code>null</code>
+ * for the system default Locale
+ * @param key The message key to look up
+ */
+ public boolean isPresent(Locale locale, String key) {
+
+ String message = getMessage(locale, key);
+ if (message == null)
+ return (false);
+ else if (message.startsWith("???") && message.endsWith("???"))
+ return (false); // FIXME - Only valid for default implementation
+ else
+ return (true);
}
1.9 +47 -4 jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java
Index: RequestUtils.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- RequestUtils.java 2001/03/11 00:58:45 1.8
+++ RequestUtils.java 2001/04/18 23:32:35 1.9
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java,v 1.8 2001/03/11 00:58:45 craigmcc Exp $
- * $Revision: 1.8 $
- * $Date: 2001/03/11 00:58:45 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java,v 1.9 2001/04/18 23:32:35 craigmcc Exp $
+ * $Revision: 1.9 $
+ * $Date: 2001/04/18 23:32:35 $
*
* ====================================================================
*
@@ -89,7 +89,7 @@
* in the Struts controller framework.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.8 $ $Date: 2001/03/11 00:58:45 $
+ * @version $Revision: 1.9 $ $Date: 2001/04/18 23:32:35 $
*/
public class RequestUtils {
@@ -492,6 +492,49 @@
} catch (Exception e) {
throw new ServletException("BeanUtils.populate", e);
}
+
+ }
+
+
+ /**
+ * Return true if a message string for the specified message key
+ * is present for the specified Locale.
+ *
+ * @param pageContext The PageContext associated with this request
+ * @param bundle Name of the servlet context attribute for our
+ * message resources bundle
+ * @param locale Name of the session attribute for our user's Locale
+ * @param key Message key to be looked up and returned
+ *
+ * @exception JspException if a lookup error occurs (will have been
+ * saved in the request already)
+ */
+ public static boolean present(PageContext pageContext, String bundle,
+ String locale, String key)
+ throws JspException {
+
+ // Look up the requested MessageResources
+ if (bundle == null)
+ bundle = Action.MESSAGES_KEY;
+ MessageResources resources = (MessageResources)
+ pageContext.getAttribute(bundle, PageContext.APPLICATION_SCOPE);
+ if (resources == null) {
+ JspException e = new JspException
+ (messages.getMessage("message.bundle", bundle));
+ saveException(pageContext, e);
+ throw e;
+ }
+
+ // Look up the requested Locale
+ if (locale == null)
+ locale = Action.LOCALE_KEY;
+ Locale userLocale = (Locale)
+ pageContext.getAttribute(locale, PageContext.SESSION_SCOPE);
+ if (userLocale == null)
+ userLocale = defaultLocale;
+
+ // Return the requested message presence indicator
+ return (resources.isPresent(userLocale, key));
}