001: package org.apache.velocity.tools.struts;
002:
003: /*
004: * Licensed to the Apache Software Foundation (ASF) under one
005: * or more contributor license agreements. See the NOTICE file
006: * distributed with this work for additional information
007: * regarding copyright ownership. The ASF licenses this file
008: * to you under the Apache License, Version 2.0 (the
009: * "License"); you may not use this file except in compliance
010: * with the License. You may obtain a copy of the License at
011: *
012: * http://www.apache.org/licenses/LICENSE-2.0
013: *
014: * Unless required by applicable law or agreed to in writing,
015: * software distributed under the License is distributed on an
016: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017: * KIND, either express or implied. See the License for the
018: * specific language governing permissions and limitations
019: * under the License.
020: */
021:
022: /**
023: * <p>View tool to work with the Struts error messages.</p>
024: * <p><pre>
025: * Template example(s):
026: * #if( $errors.exist() )
027: * <div class="errors">
028: * #foreach( $e in $errors.all )
029: * $e <br>
030: * #end
031: * </div>
032: * #end
033: *
034: * Toolbox configuration:
035: * <tool>
036: * <key>errors</key>
037: * <scope>request</scope>
038: * <class>org.apache.velocity.tools.struts.ErrorsTool</class>
039: * </tool>
040: * </pre></p>
041: *
042: * <p>This tool should only be used in the request scope.</p>
043: * <p>Since VelocityTools 1.1, ErrorsTool extends ActionMessagesTool.</p>
044: *
045: * @author <a href="mailto:sidler@teamup.com">Gabe Sidler</a>
046: * @author Nathan Bubna
047: * @since VelocityTools 1.0
048: * @version $Id: ErrorsTool.java 479724 2006-11-27 18:49:37Z nbubna $
049: */
050: public class ErrorsTool extends ActionMessagesTool {
051:
052: /**
053: * Initializes this tool.
054: *
055: * @param obj the current ViewContext
056: * @throws IllegalArgumentException if the param is not a ViewContext
057: */
058: public void init(Object obj) {
059: //setup superclass instance members
060: super .init(obj);
061:
062: this .actionMsgs = StrutsUtils.getErrors(this .request);
063: }
064:
065: /**
066: * <p>Renders the queued error messages as a list. This method expects
067: * the message keys <code>errors.header</code> and <code>errors.footer</code>
068: * in the message resources. The value of the former is rendered before
069: * the list of error messages and the value of the latter is rendered
070: * after the error messages.</p>
071: *
072: * @return The formatted error messages. If no error messages are queued,
073: * an empty string is returned.
074: */
075: public String getMsgs() {
076: return getMsgs(null, null);
077: }
078:
079: /**
080: * <p>Renders the queued error messages of a particual category as a list.
081: * This method expects the message keys <code>errors.header</code> and
082: * <code>errors.footer</code> in the message resources. The value of the
083: * former is rendered before the list of error messages and the value of
084: * the latter is rendered after the error messages.</p>
085: *
086: * @param property the category of errors to render
087: *
088: * @return The formatted error messages. If no error messages are queued,
089: * an empty string is returned.
090: */
091: public String getMsgs(String property) {
092: return getMsgs(property, null);
093: }
094:
095: /**
096: * <p>Renders the queued error messages of a particual category as a list.
097: * This method expects the message keys <code>errors.header</code> and
098: * <code>errors.footer</code> in the message resources. The value of the
099: * former is rendered before the list of error messages and the value of
100: * the latter is rendered after the error messages.</p>
101: *
102: * @param property the category of errors to render
103: * @param bundle the message resource bundle to use
104: *
105: * @return The formatted error messages. If no error messages are queued,
106: * an empty string is returned.
107: * @since VelocityTools 1.1
108: */
109: public String getMsgs(String property, String bundle) {
110: return StrutsUtils.errorMarkup(property, bundle, request,
111: request.getSession(false), application);
112: }
113:
114: }
|