/*
* Copyright (c) 2004 Sun Microsystems, Inc. All rights reserved. U.S.
* Government Rights - Commercial software. Government users are subject
* to the Sun Microsystems, Inc. standard license agreement and
* applicable provisions of the FAR and its supplements. Use is subject
* to license terms.
*
* This distribution may include materials developed by third parties.
* Sun, Sun Microsystems, the Sun logo, Java and J2EE are trademarks
* or registered trademarks of Sun Microsystems, Inc. in the U.S. and
* other countries.
*
* Copyright (c) 2004 Sun Microsystems, Inc. Tous droits reserves.
*
* Droits du gouvernement americain, utilisateurs gouvernementaux - logiciel
* commercial. Les utilisateurs gouvernementaux sont soumis au contrat de
* licence standard de Sun Microsystems, Inc., ainsi qu'aux dispositions
* en vigueur de la FAR (Federal Acquisition Regulations) et des
* supplements a celles-ci. Distribue par des licences qui en
* restreignent l'utilisation.
*
* Cette distribution peut comprendre des composants developpes par des
* tierces parties. Sun, Sun Microsystems, le logo Sun, Java et J2EE
* sont des marques de fabrique ou des marques deposees de Sun
* Microsystems, Inc. aux Etats-Unis et dans d'autres pays.
*/
package template;
import javax.servlet.ServletException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import java.util.HashMap;
public class InsertTag extends SimpleTagSupport {
private String parameterName = null;
private String definitionName = null;
public InsertTag() {
super();
}
public void setParameter(String parameter) {
this.parameterName = parameter;
}
public void setDefinition(String name) {
this.definitionName = name;
}
public void doTag() throws JspTagException {
Definition definition = null;
Parameter parameter = null;
boolean directInclude = false;
PageContext context = (PageContext) getJspContext();
// get the definition from the page context
definition =
(Definition) context.getAttribute(definitionName,
context.APPLICATION_SCOPE);
// get the parameter
if ((parameterName != null) && (definition != null)) {
parameter = (Parameter) definition.getParam(parameterName);
}
if (parameter != null) {
directInclude = parameter.isDirect();
}
try {
// if parameter is direct, print to out
if (directInclude && (parameter != null)) {
context.getOut()
.print(parameter.getValue());
}
// if parameter is indirect, include results of dispatching to page
else {
if ((parameter != null) && (parameter.getValue() != null)) {
context.include(parameter.getValue());
}
}
} catch (Exception ex) {
Throwable rootCause = null;
if (ex instanceof ServletException) {
rootCause = ((ServletException) ex).getRootCause();
}
throw new JspTagException(ex.getMessage(), rootCause);
}
}
}