001 /* 002 * ---------------------------------------------------------------------- 003 * Copyright (C) 2009 Enrique Lara (k957@68k.org) 004 * 005 * TinLizard is free software; you can redistribute it and/or 006 * modify it under the terms of the GNU Lesser General Public License 007 * as published by the Free Software Foundation; either version 3.0 008 * of the License, or (at your option) any later version. 009 * 010 * TinLizard is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU Lesser General Public License for more details. 014 * 015 * You should have received a copy of the GNU Lesser General Public License 016 * along with TinLizard. If not, see http://www.gnu.org/licenses/. 017 * ---------------------------------------------------------------------- 018 */ 019 package tinlizard.web; 020 021 import javax.servlet.http.HttpServletRequest; 022 import javax.servlet.http.HttpServletResponse; 023 import javax.servlet.jsp.JspException; 024 import javax.servlet.jsp.tagext.TagSupport; 025 026 import org.codehaus.plexus.util.StringUtils; 027 028 /** 029 * Tag Lib to insert custom content. 030 */ 031 public final class MashInTag extends TagSupport { 032 private static final long serialVersionUID = 1L; 033 private Object it; 034 private String template = null; 035 036 public void setIt(final Object it) { 037 this.it = it; 038 } 039 040 public void setTemplate(final String template) { 041 this.template = template; 042 } 043 044 public int doStartTag() { 045 HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); 046 HttpServletResponse response = (HttpServletResponse) pageContext.getResponse(); 047 048 //XXX default to "it" defined by stapler if not set. 049 if (StringUtils.isNotBlank(template)) { 050 String username = null; 051 052 if (request.getUserPrincipal() != null) { 053 username = request.getUserPrincipal().getName(); 054 } 055 056 TinLizardWeb.getInstance().applyTemplate(it, template, pageContext.getOut(), response.getLocale(), username); 057 } 058 059 return SKIP_BODY; 060 } 061 062 public int doEndTag() throws JspException { 063 release(); 064 065 return EVAL_PAGE; 066 } 067 }