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]