To pass more than parameter, a) from onPassivate method you should return an object array:
Object[] onPassivate() { return new Object[] {getProductId(), "some string", true}; } b) Then you either define onActivate method as void onActivate(long productId, String xxx, Boolean yyy) { setProductId(productId); loadProduct(); } or void onActivate(Object[] context) { Long projectId = Long.parseLong(((String) context[0])); .... } In case you decide to use the latter, then you should be aware that context contains String representations of objects returned by onPassivate. The second question: to pass your own value objects as context parameters you should specify the strategy for converting your object to string and restoring its state from the string (i.e. coercer) in you AppModule. For instance to specify Date-to-String and String-to-Date coercing you'd have to do the following: public static void contributeTypeCoercer(Configuration<CoercionTuple> configuration) { Coercion<Date, String> dateToString = new Coercion<Date, String>() { public String coerce(Date date) { return (new SimpleDateFormat(DATETIME_PATTERN)).format(date); } }; Coercion<String, Date> stringToDate = new Coercion<String, Date>() { public Date coerce(String date) { try { return (new SimpleDateFormat(DATETIME_PATTERN)).parse(date); } catch (ParseException e) { throw new RuntimeException("Coercion failed!", e); } } }; configuration.add(new CoercionTuple<Date, String>(Date.class, String.class, dateToString)); configuration.add(new CoercionTuple<String, Date>(String.class, Date.class, stringToDate)); } Check this for more: http://tapestry.apache.org/tapestry5/tapestry-ioc/coerce.html Good luck! Anton On Sun, Mar 23, 2008 at 8:32 AM, Yura Tkachenko <[EMAIL PROTECTED]> wrote: > And how I can pass more than one parameter? Or did you mean "I cannot pass > more than one parameter"? > > Thanks, > Yura. > > > > On Sat, Mar 22, 2008 at 10:46 PM, SergeEby <[EMAIL PROTECTED]> wrote: > > > > > Hi, > > > > You can pass more than one parameter. > > > > /Serge > > > > > > Yura Tkachenko wrote: > > > > > > Hi All, > > > > > > I've been reading chapter about "Page Activation Context" here: > > > http://tapestry.apache.org/tapestry5/tapestry-core/guide/pagenav.html. > > And > > > I > > > have a question: can I pass using activation context more than one > > > parameter? > > > > > > For example in help we have an example: > > > > > > void onActivate(long productId) { > > > setProductId(productId); > > > loadProduct(); > > > } > > > > > > long onPassivate() { > > > return getProductId(); > > > } > > > > > > Also it was mentioned onPassivate method should be like a mirror of > > > onActivate. Does it means I can't pass more than one parameter? > > > Another approach I tried is it create another Java Bean (wrapper object) > > > and > > > simple try to pass this bean via activation context. In that case my > > > onActivate and onPassivate were: > > > > > > void onActivate(PageWrapper wrappedData) { > > > System.out.println("Activated with message: " + wrappedData); > > > setWrapper(wrappedData); > > > } > > > > > > PageWrapper onPassivate() { > > > System.out.println("Page is passivated."); > > > return getWrapper(); > > > } > > > > > > As the result I got exception. From URL I understood that Typestry > > during > > > passing parameter via activation context is converting it to get > > request. > > > In > > > my case for wrapped object URL was: > > > > > > http://localhost:8080/t5first/second/com.packtpub.t5first.utils.PageWrapper%40307efc > > > After looking to that URL I realized that T5 just call toString of > > passed > > > object :-) > > > So my additional questions: > > > 1) Why not allow to user pass his own objects (POJO)? > > > 2) Why not pass data via HTTP POST? Because as far as I know HTTP (at > > > least > > > some browsers and http servers) has some limitations to the length of > > > URLs. > > > Besides sooner or later some smart users will pass string with a few > > > Kbytes > > > and the page will get wrong data (truncated). > > > > > > > > > > -- > > View this message in context: > > > http://www.nabble.com/Page-activation-context-question-tp16231642p16231791.html > > Sent from the Tapestry - User mailing list archive at Nabble.com. > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > -- http://www.sourcekibitzer.org --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]