View Javadoc

1   // $Id: BaseTag.java,v 1.2 2004/05/23 16:59:41 powerpete Exp $
2   // [JMP, 08.01.2004] Created this file.
3   package com.pnpconsult.zeiterfassung.tags;
4   
5   import javax.servlet.http.HttpServletRequest;
6   import javax.servlet.jsp.JspException;
7   import javax.servlet.jsp.tagext.TagSupport;
8   
9   import org.apache.struts.util.ResponseUtils;
10  
11  /***
12   * Renders a <tt>&lt;base href="..."/&gt;</tt> tag. In contrast to the 
13   * <tt>&lt;html:base&gt;</tt> tag, this tag renders the url including the webapp
14   * path, beginning with the protocol, but not including the servlet path:
15   * <p>
16   * <pre>
17   *   &lt;pnptime:base/&gt;
18   * </pre>
19   * <p>
20   * renders
21   * </p>
22   * <pre>
23   *   &lt;base href="http://localhost:8080/pnptime/"/&gt;
24   * </pre>
25   * 
26   * @author <a href="mailto:powerpete@users.sf.net">M. Petersen</a>
27   * @version $Id: BaseTag.java,v 1.2 2004/05/23 16:59:41 powerpete Exp $
28   * 
29   * @jsp.tag name="base"
30   */
31  public class BaseTag extends TagSupport
32  {
33      /***
34       * @see javax.servlet.jsp.tagext.Tag#doStartTag()
35       */
36      public int doStartTag() throws JspException
37      {
38          HttpServletRequest request =
39              (HttpServletRequest) super.pageContext.getRequest();
40          StringBuffer html = new StringBuffer();
41          html.append(
42              "<base href=\"http://"
43                  + request.getServerName()
44                  + ":"
45                  + request.getServerPort()
46                  + request.getContextPath()
47                  + "/\"/>");
48          ResponseUtils.write(pageContext, html.toString());
49          return EVAL_PAGE;
50      }
51  }