I would prefer to see something that emphasized the "template" keyword
over "screen" or at least provided a property for it so it is as easy. 
Also, would it not be good to include tags to add QueryData and PathInfo
to the URI?

ingo schuster wrote:
> 
> Hi,
> 
> what about adding following JSP tag to turbines tag library?
> It allows to get a DynamicUri from within a JSP. We found it to be useful
> in jetspeed.
> 
> ingo.
> 
> Tag definition in the tld
> ============================================================
>    <tag>
>      <name>dynamicUri</name>
>      <tagclass>org.apache.turbine.services.jsp.tags.DynamicURITag</tagclass>
>      <bodycontent>JSP</bodycontent>
>      <attribute>
>        <name>screen</name>
>        <required>false</required>
>        <rtexprvalue>false</rtexprvalue>
>      </attribute>
>      <attribute>
>        <name>action</name>
>        <required>false</required>
>        <rtexprvalue>false</rtexprvalue>
>      </attribute>
>    </tag>
> 
> DynamicURITag.java
> ============================================================
> package org.apache.turbine.services.jsp.tags;
> 
> /*
>   * Copyright (c) 1997-1999 The Java Apache Project.  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. All advertising materials mentioning features or use of this
>   *    software must display the following acknowledgment:
>   *    "This product includes software developed by the Java Apache
>   *    Project for use in the Apache JServ servlet engine project
>   *    <http://java.apache.org/>."
>   *
>   * 4. The names "Apache JServ", "Apache JServ Servlet Engine", "Turbine",
>   *    "Apache Turbine", "Turbine Project", "Apache Turbine Project" and
>   *    "Java Apache Project" must not be used to endorse or promote products
>   *    derived from this software without prior written permission.
>   *
>   * 5. Products derived from this software may not be called "Apache JServ"
>   *    nor may "Apache" nor "Apache JServ" appear in their names without
>   *    prior written permission of the Java Apache Project.
>   *
>   * 6. Redistributions of any form whatsoever must retain the following
>   *    acknowledgment:
>   *    "This product includes software developed by the Java Apache
>   *    Project for use in the Apache JServ servlet engine project
>   *    <http://java.apache.org/>."
>   *
>   * THIS SOFTWARE IS PROVIDED BY THE JAVA APACHE PROJECT "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 JAVA APACHE PROJECT 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 Java Apache Group. For more information
>   * on the Java Apache Project and the Apache JServ Servlet Engine project,
>   * please see <http://java.apache.org/>.
>   *
>   */
> 
> import javax.servlet.jsp.*;
> import javax.servlet.jsp.tagext.*;
> 
> // Turbine Classes
> import org.apache.jetspeed.util.Util;
> import org.apache.turbine.util.*;
> import org.apache.turbine.services.jsp.JspService;
> 
> /**
>   * Supporting class for the DynamicURI tag.
>   * Basically routes the call to DynamicUri
>   *
>   * FIXME: make "screen" an optional parameter and add "action" as an
> optional parameter.
>   *
>   * @author <a href="mailto:[EMAIL PROTECTED]">Ingo Schuster</a>
>   * @version $Id: DynamicURITag.java,v 1.2 2001/01/24 16:56:24 ingo Exp $
>   */
> public class DynamicURITag extends TagSupport
> {
>      /**
>       * screen parameter defines the screen to set
>       */
>      private String screen;
> 
>      /**
>       * The setter for screen parameter
>       */
>      public void setscreen(String screen)
>      {
>          this.screen = screen;
>      }
> 
>      /**
>       * action parameter defines the action to set
>       */
>      private String action;
> 
>      /**
>       * The setter for screen parameter
>       */
>      public void setaction(String action)
>      {
>          this.action = screen;
>      }
> 
>      public int doStartTag() throws JspException
>      {
>          RunData data =
> (RunData)pageContext.getAttribute(JspService.RUNDATA,
> PageContext.REQUEST_SCOPE);
> 
>          DynamicURI uri = new DynamicURI( data );
>          if ( screen != null ) uri = uri.setScreen( screen );
>          if ( action != null ) uri = uri.setAction( action );
> 
>          try
>          {
>              if (uri != null) {
>                  pageContext.getOut().print(uri.toString());
>              }
>          }
>          catch (Exception e)
>          {
>              String message = "Error processing DynamicUriTag, parameter:
> screen='"+ screen + "', action='" +action +"'";
>              Log.error(message, e);
>              try
>              {
>                  data.getOut().print( message );
>              }
>              catch(java.io.IOException ioe) {}
>          }
> 
>          return EVAL_BODY_INCLUDE;
>      }
> 
> }
> 
> ------------------------------------------------------------
> To subscribe:        [EMAIL PROTECTED]
> To unsubscribe:      [EMAIL PROTECTED]
> Search: <http://www.mail-archive.com/turbine%40list.working-dogs.com/>
> Problems?:           [EMAIL PROTECTED]


------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Search: <http://www.mail-archive.com/turbine%40list.working-dogs.com/>
Problems?:           [EMAIL PROTECTED]

Reply via email to