| /* |
| * 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.tagext.TagSupport; |
| |
| import org.apache.tiles.DefinitionsFactory; |
| import org.apache.tiles.DefinitionsFactoryConfig; |
| import org.apache.tiles.DefinitionsFactoryException; |
| import org.apache.tiles.TilesUtil; |
| |
| /** |
| * Init definitions factory. |
| */ |
| public class InitDefinitionsTag extends TagSupport implements ComponentConstants { |
| |
| |
| private String filename = null; |
| private String classname = null; |
| |
| /** |
| * Default constructor. |
| */ |
| public InitDefinitionsTag() { |
| super(); |
| } |
| |
| /** |
| * Release all allocated resources. |
| */ |
| public void release() { |
| |
| super.release(); |
| filename = null; |
| } |
| |
| /** |
| * Set file. |
| */ |
| public void setFile(String name){ |
| this.filename = name; |
| } |
| |
| /** |
| * Set classname. |
| */ |
| public void setClassname(String classname){ |
| this.classname = classname; |
| } |
| |
| /** |
| * Do start tag. |
| */ |
| public int doStartTag() throws JspException |
| { |
| DefinitionsFactory factory = TilesUtil.getDefinitionsFactory(pageContext.getRequest(),pageContext.getServletContext()); |
| if(factory != null ) |
| return SKIP_BODY; |
| |
| DefinitionsFactoryConfig factoryConfig = new DefinitionsFactoryConfig(); |
| factoryConfig.setFactoryClassname( classname ); |
| factoryConfig.setDefinitionConfigFiles( filename ); |
| |
| try |
| { |
| factory = TilesUtil.createDefinitionsFactory(pageContext.getServletContext(), factoryConfig); |
| } |
| catch( DefinitionsFactoryException ex ) |
| { |
| ex.printStackTrace(); |
| throw new JspException( ex.getMessage() + " See console for details" ); |
| } |
| return SKIP_BODY; |
| } |
| |
| /** |
| * Do end tag. |
| */ |
| public int doEndTag() throws JspException { |
| return EVAL_PAGE; |
| } |
| |
| } |