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]