The problem isn't with DirectLink it's with the method being invoked which 
expects a single parameter.  I could, of course, write a special method that 
takes no params and then calls the extant method with a null parameter but 
that's a kludgy hack.  Jim S. got the best answer:  ognl:{} does the trick.

Note 1: this is a more general problem for DirectLink.  So if you have a 
possibly null parameter wrap it in curly braces.

Note 2: this is in the Tapestry javadocs on DirectLink.  That said, is it the 
right behavior?  I'm unsure.


Thanks, 

Ezra Epstein 

-----Original Message-----
From: Jesse Kuhnert [mailto:[EMAIL PROTECTED] 
Sent: Thursday, July 13, 2006 2:19 PM
To: Tapestry users
Subject: Re: Tapestry 4: @DirectLink with parameter="ognl:null" not handled as 
a null parameter

I don't think parameters is a required "parameter" of DirectLink. What happens 
when you don't define that portion at all?

On 7/13/06, Jim Steinberger <[EMAIL PROTECTED]> wrote:
>
> Ezra,
>
> While looking for a workaround for you, I found out it's not just 
> /explicit/ nulls:
>
> To my page class, I added:
> public Integer getBip() {
>   return null;
> }
>
> And changed my template to:
> parameters="ognl:bip"
>
> And got the same error as you.  Good to know.
>
>
> But you can still do this.  The "parameters" attribute can also take 
> an Object[] or List, and OGNL makes it very easy to create one inline.
>
> The following worked for me:
> parameters="ognl:{ null }"
>
> Prolly cuz the list itself isn't null and thus not thrown away, and 
> then it's mapped to the input parameters.
>
> Jim
>
> -----Original Message-----
> From: Epstein, Ezra [mailto:[EMAIL PROTECTED]
> Sent: Thursday, July 13, 2006 4:39 PM
> To: Tapestry users
> Subject: Tapestry 4: @DirectLink with parameter="ognl:null" not 
> handled as a null parameter
>
> I've got working @DirectLink tags for a listener that takes a single 
> String parameter.  In one case I want to pass in null as the parameter.
> How does one do this?  Using
>
> <a href="#" jwcid="@DirectLink" listener="listener:setCurrentNodeId"
> parameter="ognl:null">Link</a>
>
> Causes:
>
> org.apache.tapestry.BindingException
> Exception invoking listener method setCurrentNodeId of component View:
> No listener method named 'setCurrentNodeId' suitable for no listener 
> parameters found in [EMAIL PROTECTED]
> binding
> [EMAIL PROTECTED]
> parameter listener, component=View, methodName=setCurrentNodeId, 
> location=context:/View.html, line 22]
>
> Yet the listener does exist and works just fine with a non-null param.
> I'm thinking that Tapestry throws away the param b/c its null?  If so, 
> how does one explicitly provide a null param?  (And also, if so, isn't 
> that behavior incorrect? i.e., is this a bug?)
>
> Thanks,
>
> Ezra Epstein
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


--
Jesse Kuhnert
Tacos/Tapestry, team member/developer

Open source based consulting work centered around dojo/tapestry/tacos/hivemind.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to