You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Vaduvoiu Tiberiu <va...@yahoo.com> on 2007/06/25 10:39:05 UTC

test parameter existance in jxtempate/dasl

Hi, I am having a small problem displaing a search result on my page. my match in sitemap is like this:

         <map:match pattern="*/documents/*">
        <map:generate src="dasl-documents.xml" type="newjx">
          <map:parameter name="repository" value="{global:repositoryRoot}{global:{1}Path}"/>
    <map:parameter name="press" value="{2}"/>
    <map:parameter name="source" value="{request-param:source}"/>
   </map:generate> 
......

and in my dasl in the <d:where>/<d:and> I have:

   <jx:if test="${cocoon.parameters.source!=''}">
       <d:eq>
       <d:prop>
       <h:presscategory/>
      </d:prop>
      <d:literal>${cocoon.parameters.source}</d:literal>
               </d:eq>
   </jx:if>

half works..meaning if my url is like mysite.com/folder/?source=sports I get all the xml files that have the h:presscategory equal to sports...but if my url is like mysite.com/folder/ then I get nothing. When in fact I should get all the results.
So I'm thinking that somehow, the test is not right. By comparing if the parameter is different than '' (is not a double quote, there are two simple ' quotes), it probably thinks the parameters already exists. I;ve also tried using if test="${cocoon.parameters.source}" but doesn't work.anybody can tell me where am I going wrong? 10x


       
____________________________________________________________________________________
Moody friends. Drama queens. Your life? Nope! - their life, your story. Play Sims Stories at Yahoo! Games.
http://sims.yahoo.com/  

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: test parameter existance in jxtempate/dasl

Posted by Tobia <to...@linux.it>.
Vaduvoiu Tiberiu wrote:
> 	<jx:if test="${cocoon.parameters.source!=''}">

I believe that a parameter might be null when it's not defined.
Null is definitely != '', so the test "fails to fail"!

If you look at the JEXL syntax (the language you use inside ${...}):

	http://jakarta.apache.org/commons/jexl/reference/syntax.html

There is a nice empty() function that tests if the expression is either:
	- null
	- an empty string
	- an array of length zero
	- a collection of size zero
	- an empty map

So I think this should work:

	<jx:if test="${not empty(cocoon.parameters.source)}">


Tobia

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org