001/* 002 * Shredzone Commons 003 * 004 * Copyright (C) 2012 Richard "Shred" Körber 005 * http://commons.shredzone.org 006 * 007 * This program is free software: you can redistribute it and/or modify 008 * it under the terms of the GNU Library General Public License as 009 * published by the Free Software Foundation, either version 3 of the 010 * License, or (at your option) any later version. 011 * 012 * This program is distributed in the hope that it will be useful, 013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 015 * GNU General Public License for more details. 016 * 017 * You should have received a copy of the GNU Library General Public License 018 * along with this program. If not, see <http://www.gnu.org/licenses/>. 019 */ 020package org.shredzone.commons.taglib.proxy; 021 022import javax.servlet.jsp.JspException; 023import javax.servlet.jsp.tagext.BodyContent; 024import javax.servlet.jsp.tagext.BodyTag; 025 026/** 027 * A proxy that implements {@link BodyTag} and allows the target implementation to use 028 * dependency injection. 029 * 030 * @param <T> 031 * Type of the {@link BodyTag} this proxy delegates to 032 * @author Richard "Shred" Körber 033 */ 034public abstract class BodyTagProxy<T extends BodyTag> extends IterationTagProxy<T> implements BodyTag { 035 036 @Override 037 public void doInitBody() throws JspException { 038 getTargetBean().doInitBody(); 039 } 040 041 @Override 042 public void setBodyContent(BodyContent bodyContent) { 043 getTargetBean().setBodyContent(bodyContent); 044 } 045 046}