Thank you very much Alex. This would be very painful if
every time I call a macro, I would need to set a variable and trim it. 
 
            I am
curious what is the function of the @ sign in the helper “trim” macro that you
suggested. By the way, how do I call this macro i.e. invoke it?
 
            Is it possible to return a particular variable from a Web Macro? 
E.g.
 
#macro(default_query_url)
    #if($request.params.get('q'))
          #set($str =
query_url($request.params.get('q')))
    #else
          #set($str =
query_url("*"))
            #end
            RETURN $str
???? How???

#end
 
This would help my whitespace problem.
 
Thanks again,
O. O.


----- Messaggio originale -----
Da: Alex Fedotov <a...@kayak.com>
A: Velocity Users List <user@velocity.apache.org>; O. Olson <olson_...@yahoo.it>
Cc: 
Inviato: Giovedì 1 Agosto 2013 12:43
Oggetto: Re: Returning String without Whitespace from Velocimacros

Simple way:

#set($str="#default_query_url()")
$str.trim()

Can probably create a helper macro "trim" that does the same thing to the
body content:

#@trim()
   #default_query_url()
#end




On Thu, Aug 1, 2013 at 1:27 PM, O. Olson <olson_...@yahoo.it> wrote:

> Hi,
>
> I am new to using Apache Velocity. What is the correct way of returning a
> string from a Macro or a Velocimacro?
>
> Since I did not have a clue on how to return a string from a Macro, I
> decided to do something like
> #macro(query_url $query_param) q=$query_param #end
>
> I can then call the Macro using: #query_url("*")
>
> The problem with this is that the resulting value contains a Tab or
> number of Spaces before the 'q=' when I call it.
>
>
> One option is to delete the spaces like:
> #macro(query_url $query_param)
>        q=$query_param
> #end
> This fixes my problem but is very hard to read.  To take this a step
> further consider:
> #macro(default_query_url) #if($request.params.get('q'))
> #query_url($request.params.get('q')) #else #query_url("*") #end #end
> Vs.
> #macro(default_query_url)
>     #if($request.params.get('q'))
>           #query_url($request.params.get('q'))
>     #else
>           #query_url("*")
> #end
> In the first case there is no whitespace, but editing it would be very
> difficult for more complicated macros.
>
> I am curious what is the correct way to return values from Velocimacros
> and if I can Trim the resulting Whitespace before returning it?
>
> Thank you an advance for any help.
> O. O.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@velocity.apache.org
> For additional commands, e-mail: user-h...@velocity.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@velocity.apache.org
For additional commands, e-mail: user-h...@velocity.apache.org

Reply via email to