ShowXmlAction.java |
/* PCS - A Framework For Java Web Applications Copyright (C) 2002 Patrick Carl, patrick.carl@web.de This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA $Id: ControllerConfig.java,v 1.1 2003/01/08 02:33:10 pcs_org Exp $ */ package de.spieleck.pcs.action.base; import de.spieleck.pcs.Constants; import de.spieleck.pcs.action.Action; import de.spieleck.pcs.action.ActionException; import de.spieleck.pcs.action.ActionResult; import javax.xml.transform.stream.StreamSource; import java.io.File; import java.io.FileInputStream; import java.util.Hashtable; /** * This action loads XML data from a file and provides it via the * ActionResult * @author Patrick Carl */ public class ShowXmlAction implements Action{ /** loads the XML file specified by the parameter "file" * @param parameters a Hashtable for information needed to perform the Action * @throws ActionException if an exception occurrs during processing * @return an instance of ActionResult as result of the Action * */ public ActionResult perform(Hashtable parameters) throws ActionException { String path = (String) parameters.get(Constants.CONTEXT_REAL_PATH); String file = (String) parameters.get("file"); // throw an Exception if no file parameter is given if(file == null || file.length() == 0) throw new ActionException("No parameter file given"); else if(file.length() < 5){ System.out.println("Very short file name given, adding .xml "); file = file + ".xml"; } else if(!file.substring(file.length() - 4).equals(".xml")) file = file + ".xml"; File f = new File(path + file); // throw an Exceptin if the file doesn't exist if(!f.exists()) throw new ActionException("File does net exist: " + f.getAbsolutePath()); try{ Hashtable h = new Hashtable(); file = file.substring(0, file.length() - 3) + "xsl"; return new ActionResult(new StreamSource(f),h, file); } catch(Exception e){ e.printStackTrace(); throw new ActionException(e.getMessage()); } } }
ShowXmlAction.java |