struts-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Craig R. McClanahan" <Craig.McClana...@eng.sun.com>
Subject Re: cvs commit: jakarta-struts/web/documentation tags.html
Date Mon, 11 Sep 2000 19:55:09 GMT
Good job Luis!  I'd only like to make a couple of suggestions, intermixed below.

luis@locus.apache.org wrote:

> luis        00/09/11 12:38:42
>
>   Modified:    src/conf struts.tld
>                web/documentation tags.html
>   Added:       src/share/org/apache/struts/taglib BaseTag.java
>   Log:
>   Added a <struts:base/> tag destinated to be included in the <head> portion
>   of a strut application's JSP pages, whenever an acces to resources (images,
>   stylesheets, javascript files, etc...) is needed via a relative URL.
>
>   Revision  Changes    Path
>   1.29      +5 -0      jakarta-struts/src/conf/struts.tld
>
>   Index: struts.tld
>   ===================================================================
>   RCS file: /home/cvs/jakarta-struts/src/conf/struts.tld,v
>   retrieving revision 1.28
>   retrieving revision 1.29
>   diff -u -r1.28 -r1.29
>   --- struts.tld        2000/08/30 23:43:23     1.28
>   +++ struts.tld        2000/09/11 19:38:41     1.29
>   @@ -1790,6 +1790,11 @@
>
>
>      <tag>
>   +    <name>base</name>
>   +    <tagclass>org.apache.struts.taglib.BaseTag</tagclass>
>   +  </tag>
>   +
>   +  <tag>
>        <name>encodeRedirectURL</name>
>        <tagclass>org.apache.struts.taglib.EncodeRedirectURLTag</tagclass>
>        <attribute>
>
>
>
>   1.1                  jakarta-struts/src/share/org/apache/struts/taglib/BaseTag.java
>
>   Index: BaseTag.java
>   ===================================================================
>   /*
>    * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/BaseTag.java,v
1.1 2000/09/11 19:38:41 luis Exp $
>    * $Revision: 1.1 $
>    * $Date: 2000/09/11 19:38:41 $
>    *
>    * ====================================================================
>    *
>    * The Apache Software License, Version 1.1
>    *
>    * Copyright (c) 1999 The Apache Software Foundation.  All rights
>    * reserved.
>    *
>    * Redistribution and use in source and binary forms, with or without
>    * modification, are permitted provided that the following conditions
>    * are met:
>    *
>    * 1. Redistributions of source code must retain the above copyright
>    *    notice, this list of conditions and the following disclaimer.
>    *
>    * 2. Redistributions in binary form must reproduce the above copyright
>    *    notice, this list of conditions and the following disclaimer in
>    *    the documentation and/or other materials provided with the
>    *    distribution.
>    *
>    * 3. The end-user documentation included with the redistribution, if
>    *    any, must include the following acknowlegement:
>    *       "This product includes software developed by the
>    *        Apache Software Foundation (http://www.apache.org/)."
>    *    Alternately, this acknowlegement may appear in the software itself,
>    *    if and wherever such third-party acknowlegements normally appear.
>    *
>    * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
>    *    Foundation" must not be used to endorse or promote products derived
>    *    from this software without prior written permission. For written
>    *    permission, please contact apache@apache.org.
>    *
>    * 5. Products derived from this software may not be called "Apache"
>    *    nor may "Apache" appear in their names without prior written
>    *    permission of the Apache Group.
>    *
>    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
>    * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
>    * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
>    * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
>    * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
>    * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
>    * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
>    * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
>    * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
>    * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
>    * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
>    * SUCH DAMAGE.
>    * ====================================================================
>    *
>    * This software consists of voluntary contributions made by many
>    * individuals on behalf of the Apache Software Foundation.  For more
>    * information on the Apache Software Foundation, please see
>    * <http://www.apache.org/>.
>    *
>    */
>
>   package org.apache.struts.taglib;
>
>   import java.io.IOException;
>   import javax.servlet.http.HttpServletRequest;
>   import javax.servlet.jsp.JspException;
>   import javax.servlet.jsp.JspWriter;
>   import javax.servlet.jsp.tagext.TagSupport;
>   import org.apache.struts.util.MessageResources;
>

Don't forget a class comment block (with your name in the @author tag).

>
>   public class BaseTag extends TagSupport {
>
>     /**
>      * The message resources for this package.
>      */
>     protected static MessageResources messages =
>       MessageResources.getMessageResources("org.apache.struts.taglib.LocalStrings");
>

I really prefer to see Javadoc comments for significant methods.

>
>     public int doStartTag() throws JspException {
>       HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
>       StringBuffer buf = new StringBuffer("<base href=\"");
>       buf.append(request.getScheme());
>       buf.append("://");
>       buf.append(request.getServerName());
>       buf.append(":");
>       buf.append(request.getServerPort());
>       buf.append(request.getContextPath());
>       buf.append(request.getRequestURI());
>

This will duplicate the context path (which is included in the request URI.  Try changing
this line to:

    buf.append(request.getServletPath());
    if (request.getPathInfo() != null)
        buf.append(request.getPathInfo();

Or, you could just let the servlet API classes to the reconstruction for you:

    StringBuffer uri =
        HttpUtils.getRequestURL(request);

and manipulate that instead.

>       buf.append("\">");
>       JspWriter out = pageContext.getOut();
>       try {
>           out.write(buf.toString());
>       }
>       catch (IOException e) {
>             throw new JspException(messages.getMessage("common.io", e.toString()));
>       }
>       return EVAL_BODY_INCLUDE;
>     }
>   }
>
>
>   1.24      +11 -5     jakarta-struts/web/documentation/tags.html
>
>   Index: tags.html
>   ===================================================================
>   RCS file: /home/cvs/jakarta-struts/web/documentation/tags.html,v
>   retrieving revision 1.23
>   retrieving revision 1.24
>   diff -u -r1.23 -r1.24
>   --- tags.html 2000/08/27 05:21:54     1.23
>   +++ tags.html 2000/09/11 19:38:41     1.24
>   @@ -19,7 +19,15 @@
>    </ul>
>
>
>   -<a name="button"></a>
>   +<a name="button"></a>
>   +<h1><i>base</i> - Render A Base Html Tag</h1>
>   +<p>Renders an HTML <code>&lt;base&gt;</code> element with
an <code>href</code>
>   +  attribute pointing to the absolute location of the enclosing JSP page. This
>   +  tag is only valid when nested inside a <code>head</code> tag body. The
presence
>   +  of this tag allows the browser to resolve relative URL's to images, CSS stylesheets
>   +  and other resources in a manner independent of the URL used to call the ActionServlet.
>   +  There are no attributes associated with this tag.</p>
>   +<a href="#Top">Top</a> <a name="cancel"></a>
>    <h1><i>button</i> - Render A Button Input Field</h1>
>
>    <p>Renders an HTML <code>&lt;input&gt;</code> element of
type
>   @@ -2816,7 +2824,7 @@
>    <p>Renders an HTML <code>&lt;input&gt;</code> element of
type
>    <code>text/code>, populated from the specified value or the specified
>    property of the bean associated with our current <code>form</code>.  This
>   -tag is only valid when nested inside a <code>form</code> tag body.</p>
>   +tag is only valid when nested inside a <code>form</code> tag body.</code></p>
>
>    <table width="100%" border="1">
>      <tr>
>   @@ -3153,9 +3161,7 @@
>        </td>
>      </tr>
>    </table>
>   -
>   -<a href="#Top">Top</a>
>   -
>
>   +<a href="#Top">Top</a>
>    </body>
>    </html>
>
>
>

Craig

====================
See you at ApacheCon Europe <http://www.apachecon.com>!
Session VS01 (23-Oct 13h00-17h00):  Sun Technical Briefing
Session T06  (24-Oct 14h00-15h00):  Migrating Apache JServ
                                    Applications to Tomcat



Mime
View raw message