here is the actual error
An unexpected application exception has occurred.java.lang.RuntimeExceptionPage
edit/Coach did not generate any markup when rendered. This could be
because its template file could not be located, or because a render
phase method in the page prevented rendering.
java/org.tynamo.examples.hibernatesecurity.pages.edit.CoachEdit.java
resources/org.tynamo.examples.hibernatesecurity.pages.edit.CoachEdit.tml
webapp/edit/CoachEdit.tml
I tried locating the template in the two above places but it still does find it.
according to tapestry docs, it is valid to locate pages beneath the pages dir
and other folders beneath
could a render phase method be tripping it up ?
package org.tynamo.examples.hibernatesecurity.pages.edit;
import org.apache.tapestry5.EventConstants;
import org.apache.tapestry5.Link;
import org.apache.tapestry5.annotations.CleanupRender;
import org.apache.tapestry5.annotations.Log;
import org.apache.tapestry5.annotations.OnEvent;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.hibernate.annotations.CommitAfter;
import org.apache.tapestry5.ioc.Messages;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.ContextValueEncoder;
import org.apache.tapestry5.services.PageRenderLinkSource;
import org.tynamo.examples.hibernatesecurity.model.Coach;
import org.tynamo.examples.hibernatesecurity.pages.Show;
import org.tynamo.routing.annotations.At;
import org.tynamo.services.DescriptorService;
import org.tynamo.services.PersistenceService;
import org.tynamo.util.TynamoMessages;
import org.tynamo.util.Utils;
/**
* Page for editing and updating objects.
*
* @note:
* When extending this page for customization purposes, it's better to copy &
paste code than trying to use inheritance.
*
*/
@At(value="/{0}/{1}/edit", order = "before:Show")
public class CoachEdit
{
@Inject
private ContextValueEncoder contextValueEncoder;
@Inject
private Messages messages;
@Inject
private PersistenceService persistenceService;
@Inject
private DescriptorService descriptorService;
@Inject
private PageRenderLinkSource pageRenderLinkSource;
@Property(write = false)
private Class beanType = Coach.class;
@Property
private Object bean;
@OnEvent(EventConstants.ACTIVATE)
Object activate(Class clazz, String id)
{
if (clazz == null) return Utils.new404(messages);
this.bean = contextValueEncoder.toValue(clazz, id);
this.beanType = clazz;
if (bean == null) return Utils.new404(messages);
return null;
}
@CleanupRender
void cleanup()
{
bean = null;
beanType = null;
}
/**
* This tells Tapestry to put type & id into the URL, making it
bookmarkable.
*/
@OnEvent(EventConstants.PASSIVATE)
Object[] passivate()
{
return new Object[]{beanType, bean};
}
@Log
@CommitAfter
@OnEvent(EventConstants.SUCCESS)
Link success()
{
persistenceService.save(bean);
return back();
}
@OnEvent("cancel")
Link back()
{
return pageRenderLinkSource.createPageRenderLinkWithContext(Show.class,
beanType, bean);
}
public String getListAllLinkMessage()
{
return TynamoMessages.listAll(messages, beanType);
}
public String getTitle()
{
return TynamoMessages.edit(messages, beanType);
}
}