Angelo, Following are the very trimmed down versions of my template and page class. It shows the delegate and blocks, and how the block to render is determined. I didn't want to use a traditional page return for a few reasons: 1) Displaying a simple result message doesn't really need a full page. 2) This process will probably end up being ajax, which will probably mean I'll need the blocks anyway (unless I use a different ajax method).
So anyway, here it is: Info.tml <div xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd" t:type="layouts/general"> <t:delegate to="content" /> <t:block id="infoRequest"> <div t:type="form" t:id="infoRequest"> <!-- ... form details ... --> </form> </t:block> <t:block id="messageSent">Thanks!</t:block> </div> Info.java public class Info { @Persist("flash") private Block content; @Inject private Block messageSent; @Inject private Block infoRequest; void onActivate() { if(content == null) content = infoRequest; } void onSuccessFromInfoRequest() { //Process form - update/save/create entity, send email, etc. //Set our content block to the messageSent block. content = messageSent; } public Block getContent() { return content; } } chris Angelo Chen wrote: > hi cris, > > sounds interesting, how about a sample code/template to let us understand > more? thanks. > > angelo > > > Chris Lewis-5 wrote: > >> Hello all, >> >> I'm wondering how others handle a simple flow where a user fills out a >> form, form is processed, and then a message is shown as a result ("ok" >> or "failed"). I have a simple contact form and am handling this like so: >> >> In my template I have 2 blocks: 1 is the form and the other is the >> message (or a place holder). There is also a t:delegate that will render >> the page property "content", which is just another block that will be >> assigned the form or message block. >> >> Now because I have 2 different possible "bodies" (the blocks), I have to >> have some logic to make sure the correct one gets displayed. So my the >> page's content property is annotated as @Persist("flash"), and at the >> end of the form submission I set the content member to a message. It's >> persisted, so that works. To get the initial content (the form) to >> render, I check if the content property is null in onActivate, and if so >> assign the form block. >> >> It works nicely, and I was wondering how others were handling this >> common use case and if something stinks about my method. >> >> Thanks! >> >> chris >> >> -- >> http://thegodcode.net >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> >> > > -- http://thegodcode.net