| /* |
| * Copyright 2004-2005 The Apache Software Foundation. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package org.apache.taglib.tiles; |
| |
| import javax.servlet.jsp.JspException; |
| import javax.servlet.jsp.PageContext; |
| import javax.servlet.jsp.tagext.TagSupport; |
| |
| import org.apache.taglib.tiles.util.TagUtils; |
| import org.apache.tiles.ComponentContext; |
| |
| |
| /** |
| * Custom tag that puts component's attributes in a scope (request, page, ...). |
| * @deprecated Is it still in use ? |
| */ |
| public final class AttributeToScopeTag extends TagSupport { |
| |
| |
| // ----------------------------------------------------- Instance Variables |
| |
| |
| /** |
| * The scope name. |
| */ |
| private String scopeName = null; |
| |
| /** |
| * The scope value. |
| */ |
| private int scope = PageContext.PAGE_SCOPE; |
| |
| |
| |
| /** |
| * The property name to be exposed. |
| */ |
| private String property = null; |
| |
| |
| // ------------------------------------------------------------- Properties |
| |
| |
| |
| /** |
| * Return the property name. |
| */ |
| public String getProperty() |
| { |
| return (this.property); |
| } |
| |
| |
| /** |
| * Set the property name. |
| * |
| * @param property The property name |
| */ |
| public void setProperty(String property) |
| { |
| this.property = property; |
| } |
| |
| /** |
| * Set the scope. |
| * |
| * @param scope The new scope |
| */ |
| public void setScope(String scope) |
| { |
| this.scopeName = scope; |
| } |
| |
| // --------------------------------------------------------- Public Methods |
| |
| |
| /** |
| * Expose the requested property from component context. |
| * |
| * @exception JspException if a JSP exception has occurred |
| */ |
| public int doStartTag() throws JspException |
| { |
| if( id==null ) |
| id=property; |
| |
| ComponentContext compContext = (ComponentContext)pageContext.getAttribute( ComponentConstants.COMPONENT_CONTEXT, PageContext.REQUEST_SCOPE); |
| |
| if( compContext == null ) |
| throw new JspException ( "Error - tag.useProperty : component context is not defined. Check tag syntax" ); |
| |
| Object value = compContext.getAttribute(property); |
| if( value == null ) |
| throw new JspException ( "Error - tag.useProperty : property '"+ property + "' not found in context. Check tag syntax" ); |
| |
| if( scopeName != null ) |
| { |
| scope = TagUtils.getScope( scopeName, PageContext.PAGE_SCOPE ); |
| pageContext.setAttribute(id, value, scope); |
| } |
| else |
| pageContext.setAttribute(id, value); |
| |
| // Continue processing this page |
| return SKIP_BODY; |
| } |
| |
| |
| |
| |
| /** |
| * Clean up after processing this enumeration. |
| * |
| * @exception JspException if a JSP exception has occurred |
| */ |
| public int doEndTag() throws JspException |
| { |
| return (EVAL_PAGE); |
| } |
| |
| /** |
| * Release all allocated resources. |
| */ |
| public void release() { |
| |
| super.release(); |
| property = null; |
| scopeName = null; |
| scope = PageContext.PAGE_SCOPE; |
| } |
| |
| } |