i've confused you on the use of the hash map. i corrected the code below with what you need . they hashmap key name is arbitrary notice i've changed it in your code and your sitemap. Hopefully the fixed code will make what needs to happen clear, but if not I can explain in more detail later.
> -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > Sent: Wednesday, January 29, 2003 10:00 AM > To: [EMAIL PROTECTED] > Subject: Using an action correctly? > > > Hi, > > I have written an action and compiled it successfully. I put it in the > cocoon/WEB-INF/lib folder as a jar: > > package test.acting; > > import java.util.Map; > import java.util.HashMap; > import org.apache.avalon.framework.parameters.Parameters; > import org.apache.cocoon.acting.AbstractAction; > import org.apache.cocoon.environment.Request; > import org.apache.cocoon.environment.SourceResolver; > import org.apache.cocoon.environment.Redirector; > import org.apache.cocoon.environment.ObjectModelHelper; > import org.xml.sax.EntityResolver; > > > public class XslSelection extends AbstractAction { > > public Map act(Redirector redirector, SourceResolver resolver, Map > objectModel, > String source, Parameters parameters){ > > Map results = new HashMap(); > Request request = ObjectModelHelper.getRequest(objectModel); > > String report_id = request.getParameter("report_id"); > String service_id = request.getParameter("service_id"); > > // Now choose the suitable XSL for the output > if(report_id.equals("16")) --> results.put("xsl-choice","report_16"); > else if(report_id.equals("17") && service_id.equals("GSM")) --> results.put("xsl-choice","report_17GSM"); > else if(report_id.equals("17") && !service_id.equals("GSM")) --> results.put("xsl-choice","report_17"); > else if(report_id.equals("19")) --> results.put("xsl-choice","report_19"); > else if(report_id.equals("18")) --> results.put("xsl-choice","report_18"); > else --> results.put("xsl-choice","error"); > > return results; > } > } > > > In the sitemap I "import" it as follows. > ... > <map:actions> > <!-- here is the class defined that is used for choosing the right > xsl for the output --> > <map:action name="xslSelect" src="test.acting.XslSelection"/> > ... > </map:actions> > > > Thats how I use it in the sitemap: > ... > <map:match pattern="blabla"> > <map:generate src="sampleoutput.xml"/> > <map:act type="xslSelect"> --> <map:transform src="stylesheets/{xsl-choice}.xsl"/> > <map:serialize type="fo2pdf"/> > </map:act> > </map:match> > ... > > But I only get the error that cocoon can't find the page (Resource not > found). Invoking the different stylesheets "manually" is no problem, but > using the action. > Since it is my first action, I don't know where to look for the error. > > Another question. Can't I just give back a String? My XSLs are called > report_16.xsl, report_17.xsl, report_18.xsl, report_19.xsl, error.xsl > > Jonny > > ------------------------------------------------------------------ > ---------------------------------- > > This electronic message contains information from the mmo2 plc Group which > may be > privileged or confidential. The information is intended to be for the use > of the > individual(s) or entity named above. If you are not the intended recipient > be aware > that any disclosure, copying, distribution or use of the contents of this > information > is prohibited. If you have received this electronic message in error, > please notify > us by telephone or email (to the numbers or address above) immediately. > > > > > --------------------------------------------------------------------- > Please check that your question has not already been answered in the > FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> > > To unsubscribe, e-mail: <[EMAIL PROTECTED]> > For additional commands, e-mail: <[EMAIL PROTECTED]> > > > --------------------------------------------------------------------- Please check that your question has not already been answered in the FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> To unsubscribe, e-mail: <[EMAIL PROTECTED]> For additional commands, e-mail: <[EMAIL PROTECTED]>