You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Eduardo Godoy Vega <eg...@mail.tekchile.cl> on 2001/10/22 18:20:13 UTC

[C2] Howto ... IF in sitemap ...

Hi,
	I want to use some kind of "IF-ELSE" into sitemap...

right now, I have this code ...

<map:match pattern="process-unveil">
<map:act type="unveil-it">
<map:generate type="serverpages" src="do_unveil.xsp">
<map:parameter name="unveil_result" value="{Count}"/>
<map:parameter name="use-request-parameters" value="true"/>
</map:generate>
<map:transform src="stylesheets/llbean-html.xsl">
<map:parameter name="use-request-parameters" value="true"/>
</map:transform>
</map:act>
<map:serialize/>
</map:match>


"unveil_result" is a number returned by my action, and I want to choose a
different XSP page if unveil_result is zero or if unveil_result equal one or
if unveil_result is bigger than one ...
I don't want to use java inside XSP pages ... so ... Is it possible to do in
sitemap ??


Thanks
Eduardo.


---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>

To unsubscribe, e-mail: <co...@xml.apache.org>
For additional commands, e-mail: <co...@xml.apache.org>


Re: [C2] Howto ... IF in sitemap ...

Posted by Sylvain Wallez <sy...@anyware-tech.com>.

Eduardo Godoy Vega a écrit :
> 
> I fixed ... but ... everywhere I found
> this line (including ParameterSelectorFactory.java file)
> &lt;map:selector name="parameter"
> factory="org.apache.cocoon.selection.ParameterSelectorFactory"/&gt;
> 
> but ... If I use "src" insted of "factory" ... It works!
> 
> BTW ... which is the diff. between use "src" and "factory"??
> 
> Eduardo.
> 
"factory" was used in early versions of Cocoon 2 to distinguish between
components implementing CodeFactory from regular components, but has
been removed since the sitemap engine detects this automatically. Only
"src" is supported now.
-- 
Sylvain Wallez
Anyware Technologies - http://www.anyware-tech.com

---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>

To unsubscribe, e-mail: <co...@xml.apache.org>
For additional commands, e-mail: <co...@xml.apache.org>


RE: [C2] Howto ... IF in sitemap ...

Posted by Eduardo Godoy Vega <eg...@mail.tekchile.cl>.
I fixed ... but ... everywhere I found
this line (including ParameterSelectorFactory.java file)
&lt;map:selector name="parameter"
factory="org.apache.cocoon.selection.ParameterSelectorFactory"/&gt;

but ... If I use "src" insted of "factory" ... It works!

BTW ... which is the diff. between use "src" and "factory"??

Eduardo.



---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>

To unsubscribe, e-mail: <co...@xml.apache.org>
For additional commands, e-mail: <co...@xml.apache.org>


RE: [C2] Howto ... IF in sitemap ...

Posted by Eduardo Godoy Vega <eg...@mail.tekchile.cl>.
I did ... and now I get this error: (sorry, I don't like to ask to much ...
but I can't find a good document about it)

org.apache.cocoon.ProcessingException: Exception in Handler:
org.apache.avalon.framework.component.ComponentException: Could not set up
Component for hint: org\apache\cocoon\www\unveil\sitemap_xmap
	at
org.apache.cocoon.sitemap.Handler.throwEventualException(Handler.java:244)
	at org.apache.cocoon.sitemap.Handler.regenerate(Handler.java:155)

If I comment the line
<map:selectors default="browser">
			<map:selector name="parameter"
factory="org.apache.cocoon.selection.ParameterSelectorFactory"/>
		</map:selectors>

I get another error message (the old one):
(/cocoon/unveil/process-unveil) Thread-13/sitemap_xmap: Sitemap
 org.apache.avalon.framework.component.ComponentException: UnnamedSelector:
 ComponentSelector could not find the component for hint: parameter

so, I have a problem with <map:selector name="parameter"
factory="org.apache.cocoon.selection.ParameterSelectorFactory"/>

I search into cocoon.jar ... and the class file is on it! ... so ...

What's wrong ??? :-(

Thanks!
Eduardo.

-----Original Message-----
From: Sylvain Wallez [mailto:sylvain.wallez@anyware-tech.com]
Sent: Tuesday, October 23, 2001 4:00 AM
To: cocoon-users@xml.apache.org
Subject: Re: [C2] Howto ... IF in sitemap ...


Your <map:components> block isn't organized correctly :

<map:selectors>        <--- remove the "/"
  <map:selector name="parameter" ... />
</map:selectors>       <--- close the block.

A reminder also : the "parameter" selector test a String. This means the
"unveil-it" action should put a string in the Map it returns.

Eduardo Godoy Vega a écrit :
[DELETE]


---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>

To unsubscribe, e-mail: <co...@xml.apache.org>
For additional commands, e-mail: <co...@xml.apache.org>


Re: [C2] Howto ... IF in sitemap ...

Posted by Sylvain Wallez <sy...@anyware-tech.com>.
Your <map:components> block isn't organized correctly :

<map:selectors>        <--- remove the "/"
  <map:selector name="parameter" ... />
</map:selectors>       <--- close the block.

A reminder also : the "parameter" selector test a String. This means the
"unveil-it" action should put a string in the Map it returns.

Eduardo Godoy Vega a écrit :
> 
> What I'm doing wrong ?
> here is my sitemap
> 
> <?xml version="1.0"?>
> <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
>         <!-- =========================== Components
> ================================ -->
>         <map:components>
>                 <map:generators default="file"/>
>                 <map:transformers default="xslt"/>
>                 <map:readers default="resource"/>
>                 <map:serializers default="html"/>
>                 <map:selectors default="browser"/>
>                         <map:selector name="parameter"
> factory="org.apache.cocoon.selection.ParameterSelectorFactory"/>
>                 <map:matchers default="wildcard">
>                         <map:matcher name="wildcard"
> src="org.apache.cocoon.matching.WildcardURIMatcherFactory"/>
>                 </map:matchers>
>                 <map:actions>
>                         <map:action name="unveil-it"
> src="com.unveil.cocoon.acting.UnveilAction"/>
>                 </map:actions>
>         </map:components>
>         <!-- =========================== Pipelines
> ================================= -->
>         <map:pipelines>
>                 <map:pipeline>
>                         <map:match pattern="">
>                                 <map:redirect-to uri="initial"/>
>                         </map:match>
>                         <map:match pattern="initial">
>                                 <map:generate type="serverpages" src="llbean.xsp"/>
>                                 <map:transform src="stylesheets/llbean-html.xsl"/>
>                                 <map:serialize/>
>                         </map:match>
>                         <map:match pattern="process-unveil">
>                                 <map:act type="unveil-it">
>                                   <map:select type="parameter">
>                                         <map:parameter name="parameter-selector-test" value="{Count}"/>
>                                         <map:when test="0">
>                                                 <map:generate src="count0.xsp"/>
>                                         </map:when>
>                                         <map:when test="1">
>                                                 <map:generate src="count1.xsp"/>
>                                         </map:when>
>                                         <map:otherwhise>
>                                                 <map:generate src="countMany.xsp"/>
>                                         </map:otherwhise>
>                                   </map:select>
>                                         <map:transform src="stylesheets/llbean-html.xsl">
>                                                 <map:parameter name="use-request-parameters" value="true"/>
>                                         </map:transform>
>                                 </map:act>
>                                 <map:serialize/>
>                         </map:match>
>                 </map:pipeline>
>         </map:pipelines>
> </map:sitemap>
> <!-- end of file -->
> 
> And I get this error msg:
> 
> ERROR   (2001-10-22) 16:58.21:585   [cocoon  ]
> (/cocoon/unveil/process-unveil) Thread-13/sitemap_xmap: Sitemap
> org.apache.avalon.framework.component.ComponentException: UnnamedSelector:
> ComponentSelector could not find the component for hint: parameter
>         at
> org.apache.avalon.excalibur.component.ExcaliburComponentSelector.select(Unkn
> own Source)
>         at

<snip-stacktrace/>

> Eduardo.

-- 
Sylvain Wallez
Anyware Technologies - http://www.anyware-tech.com

---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>

To unsubscribe, e-mail: <co...@xml.apache.org>
For additional commands, e-mail: <co...@xml.apache.org>


RE: [C2] Howto ... IF in sitemap ...

Posted by Eduardo Godoy Vega <eg...@mail.tekchile.cl>.
What I'm doing wrong ?
here is my sitemap

<?xml version="1.0"?>
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
	<!-- =========================== Components
================================ -->
	<map:components>
		<map:generators default="file"/>
		<map:transformers default="xslt"/>
		<map:readers default="resource"/>
		<map:serializers default="html"/>
		<map:selectors default="browser"/>
			<map:selector name="parameter"
factory="org.apache.cocoon.selection.ParameterSelectorFactory"/>
		<map:matchers default="wildcard">
			<map:matcher name="wildcard"
src="org.apache.cocoon.matching.WildcardURIMatcherFactory"/>
		</map:matchers>
		<map:actions>
			<map:action name="unveil-it"
src="com.unveil.cocoon.acting.UnveilAction"/>
		</map:actions>
	</map:components>
	<!-- =========================== Pipelines
================================= -->
	<map:pipelines>
		<map:pipeline>
			<map:match pattern="">
				<map:redirect-to uri="initial"/>
			</map:match>
			<map:match pattern="initial">
				<map:generate type="serverpages" src="llbean.xsp"/>
				<map:transform src="stylesheets/llbean-html.xsl"/>
				<map:serialize/>
			</map:match>
			<map:match pattern="process-unveil">
				<map:act type="unveil-it">
				  <map:select type="parameter">
   					<map:parameter name="parameter-selector-test" value="{Count}"/>
					<map:when test="0">
						<map:generate src="count0.xsp"/>
					</map:when>
					<map:when test="1">
						<map:generate src="count1.xsp"/>
					</map:when>
					<map:otherwhise>
						<map:generate src="countMany.xsp"/>
					</map:otherwhise>
				  </map:select>
					<map:transform src="stylesheets/llbean-html.xsl">
						<map:parameter name="use-request-parameters" value="true"/>
					</map:transform>
				</map:act>
				<map:serialize/>
			</map:match>
		</map:pipeline>
	</map:pipelines>
</map:sitemap>
<!-- end of file -->


And I get this error msg:

ERROR   (2001-10-22) 16:58.21:585   [cocoon  ]
(/cocoon/unveil/process-unveil) Thread-13/sitemap_xmap: Sitemap
org.apache.avalon.framework.component.ComponentException: UnnamedSelector:
ComponentSelector could not find the component for hint: parameter
	at
org.apache.avalon.excalibur.component.ExcaliburComponentSelector.select(Unkn
own Source)
	at
org.apache.cocoon.sitemap.SitemapComponentSelector.select(SitemapComponentSe
lector.java:51)
	at
org.apache.cocoon.sitemap.SitemapComponentSelector.select(SitemapComponentSe
lector.java:54)
	at
org.apache.cocoon.sitemap.SitemapComponentSelector.select(SitemapComponentSe
lector.java:54)
	at
org.apache.cocoon.www.unveil.sitemap_xmap.isSelected(sitemap_xmap.java:159)
	at
org.apache.cocoon.www.unveil.sitemap_xmap.wildcardMatchN400044(sitemap_xmap.
java:551)
	at org.apache.cocoon.www.unveil.sitemap_xmap.process(sitemap_xmap.java:358)
	at org.apache.cocoon.www.unveil.sitemap_xmap.process(sitemap_xmap.java:310)
	at org.apache.cocoon.sitemap.Handler.process(Handler.java:163)
	at org.apache.cocoon.sitemap.Manager.invoke(Manager.java:116)
	at
org.apache.cocoon.www.sitemap_xmap.wildcardMatchN400233(sitemap_xmap.java:29
82)
	at org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java:2310)
	at org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java:2212)
	at org.apache.cocoon.sitemap.Handler.process(Handler.java:163)
	at org.apache.cocoon.sitemap.Manager.invoke(Manager.java:116)
	at org.apache.cocoon.Cocoon.process(Cocoon.java:495)
	at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:534)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
	at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)
	at org.apache.tomcat.core.Handler.service(Handler.java:287)
	at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
	at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:81
2)
	at org.apache.tomcat.core.ContextManager.service(ContextManager.java:758)
	at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC
onnectionHandler.java:213)
	at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
	at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
	at java.lang.Thread.run(Thread.java:484)



Eduardo.


---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>

To unsubscribe, e-mail: <co...@xml.apache.org>
For additional commands, e-mail: <co...@xml.apache.org>


Re: [C2] Howto ... IF in sitemap ...

Posted by Sylvain Wallez <sy...@anyware-tech.com>.

Eduardo Godoy Vega a écrit :
> 
> Hi,
>         I want to use some kind of "IF-ELSE" into sitemap...
> 
> right now, I have this code ...
> 
> <map:match pattern="process-unveil">
> <map:act type="unveil-it">
> <map:generate type="serverpages" src="do_unveil.xsp">
> <map:parameter name="unveil_result" value="{Count}"/>
> <map:parameter name="use-request-parameters" value="true"/>
> </map:generate>
> <map:transform src="stylesheets/llbean-html.xsl">
> <map:parameter name="use-request-parameters" value="true"/>
> </map:transform>
> </map:act>
> <map:serialize/>
> </map:match>
> 
> "unveil_result" is a number returned by my action, and I want to choose a
> different XSP page if unveil_result is zero or if unveil_result equal one or
> if unveil_result is bigger than one ...
> I don't want to use java inside XSP pages ... so ... Is it possible to do in
> sitemap ??
> 
> Thanks
> Eduardo.
> 
You can use the "parameter" builtin selector, allowing the following
construct in your sitemap (Count should be a String) :

<map:match pattern="process-unveil">
 <map:act type="unveil-it">
  <map:select type="parameter">
   <map:parameter name="parameter-selector-test" value="{Count}"/>
   <map:when test="0">
     <map:generate src="count0.xml"/>
   </map:when>
   <map:when test="1">
     <map:generate src="count1.xml"/>
   </map:when>
   <map:otherwhise>
    <map:generate src="countMany.xml"/>
   </map:otherwhise>
  </map:select>
  <map:transform ....

Hope this helps.
-- 
Sylvain Wallez
Anyware Technologies - http://www.anyware-tech.com

---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>

To unsubscribe, e-mail: <co...@xml.apache.org>
For additional commands, e-mail: <co...@xml.apache.org>