thanks Geoff,

So the example was wrong then? And as I understand when I define a binding with name listener it will always be put into map by Tapestry?

Geoff Longman wrote:

and the java to:

public class Home extends BasePage {


public void okListener(IrequestCycle cycle) { cycle.activate("Result"); }

}


IActionListeners are create for you by Tapestry and hooked to the
methods with sigs as above. These synthetic listeners are stored in a
map called "listeners" hence the ognl expression
"listeners.okListener".

Geoff


On Thu, 31 Mar 2005 14:51:57 -0600, Geoff Longman <[EMAIL PROTECTED]> wrote:


change:

<binding name="listener" expression="okListener"/>

to:

<binding name="listener" expression="listeners.okListener"/>

Geoff


On Thu, 31 Mar 2005 15:21:05 -0500, Alex Kravets
<[EMAIL PROTECTED] > wrote:


I am experimenting with currency converter from this tutorial:
http://www2.cpttm.org.mo/cyberlab/softdev/tapestry/ .
When I run application I get an exception:
org.apache.tapestry.BindingException
Unable to resolve expression 'okListener' for
[EMAIL PROTECTED]
binding:        ExpressionBinding[Home okListener]
location:       context:/WEB-INF/Home.page, line 10, column 56

ognl.NoSuchPropertyException
okListener

I have all the files as in tutorial, but have no idea what's going on.
Obviously it can't link Home.page with Home.java, but why?

Home.page
========
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE page-specification
     PUBLIC "-//Apache Software Foundation//Tapestry Specification 3.0//EN"
     "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd " >
<!-- generated by Spindle, http://spindle.sourceforge.net -->

<page-specification class="helloworld.Home">
   <description><![CDATA[   add a description   ]]></description>
       <component id="currencyConverterForm" type="Form">
                  <binding name="listener" expression="okListener"/>
       </component>
</page-specification>

Home.java
========
package helloworld;

import org.apache.tapestry.*;
import org.apache.tapestry.html.*;

public class Home extends BasePage {
       public IActionListener getOkListener() {
               return new IActionListener() {
                       public void actionTriggered( IComponent
component, IRequestCycle cycle) {
                               cycle.activate("Result");
                       }
               };
       }
}

thanks,
Alex





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




Reply via email to