View Javadoc
1 /* 2 * Copyright (c) 2004, Henri Yandell 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or 6 * without modification, are permitted provided that the 7 * following conditions are met: 8 * 9 * + Redistributions of source code must retain the above copyright notice, 10 * this list of conditions and the following disclaimer. 11 * 12 * + Redistributions in binary form must reproduce the above copyright notice, 13 * this list of conditions and the following disclaimer in the documentation 14 * and/or other materials provided with the distribution. 15 * 16 * + Neither the name of OSJava nor the names of its contributors 17 * may be used to endorse or promote products derived from this software 18 * without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 24 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 30 * POSSIBILITY OF SUCH DAMAGE. 31 */ 32 33 package org.osjava.taglib.trail; 34 35 import java.io.IOException; 36 import java.io.StringWriter; 37 38 import java.util.Iterator; 39 40 import javax.servlet.ServletRequest; 41 42 import javax.servlet.jsp.JspException; 43 import javax.servlet.jsp.JspTagException; 44 import javax.servlet.jsp.JspWriter; 45 import javax.servlet.jsp.tagext.TagSupport; 46 47 // <trail:list/> 48 // <trail:list type="full"/> 49 public class ListTag extends TagSupport { 50 51 private String var; 52 private String delimiter = " -> "; 53 private String type; 54 55 public ListTag() { 56 } 57 58 public String getVar() { return this.var; } 59 public void setVar(String var) { this.var = var; } 60 61 public String getType() { return this.type; } 62 public void setType(String type) { this.type = type; } 63 64 public String getDelimiter() { return this.delimiter; } 65 public void setDelimiter(String delimiter) { this.delimiter = delimiter; } 66 67 public int doEndTag() throws JspException { 68 BreadCrumbs breadcrumbs = JspUtils.getBreadCrumbs(pageContext); 69 70 StringBuffer buffer = new StringBuffer(); 71 Iterator itr = null; 72 // fix 73 if(this.type == null || "normalized".equals(this.type) ) { 74 itr = breadcrumbs.iterateNormalizedTrail(); 75 } else { 76 // "full" or anything else does this 77 itr = breadcrumbs.iterateTrail(); 78 } 79 while( itr.hasNext() ) { 80 BreadCrumb breadcrumb = (BreadCrumb) itr.next(); 81 Object label = breadcrumb.getLabel(); 82 Object url = breadcrumb.getUrl(); 83 buffer.append("<a href=\""); 84 buffer.append(url); 85 buffer.append("\">"); 86 buffer.append(label); 87 buffer.append("</a>"); 88 buffer.append(this.delimiter); 89 } 90 String txt = buffer.toString(); 91 92 if(this.var == null) { 93 JspWriter writer = pageContext.getOut(); 94 try { 95 writer.print(txt); 96 } catch(IOException ioe) { 97 throw new JspException(ioe.toString()); 98 } 99 } else { 100 pageContext.setAttribute(this.var, txt); 101 } 102 return EVAL_PAGE; 103 } 104 105 }

This page was automatically generated by Maven