I have a 2 nested component.
I pass Parameters Using @Environmental service.
Code in Outer Component:
void beginRender() {
environment.push(MyData.class, data);
}
void afterRender() {
environment.pop(MyData.class);
}
Code in inner Component
@Environmental
private MyData data;
It works well.
Then I want to put my first component in an ProgressiveDisplay,
When should I call environment.push() ?
I try like this:
In my outer Component:
@OnEvent(EventConstants.PROGRESSIVE_DISPLAY)
void onLoad() {
environment.push(MyData.class, getData());
}
I think this would work, but if it works, where should I call environment.pop()?
I got an Error:
org.apache.tapestry5.ioc.util.UnknownValueException
No object of type org.test.MyData is available from the Environment.
availableValues
Environmentals:
org.apache.tapestry5.RenderSupport
org.apache.tapestry5.ValidationDecorator
org.apache.tapestry5.internal.services.DocumentLinker
org.apache.tapestry5.services.ClientBehaviorSupport
org.apache.tapestry5.services.FormSupport
org.apache.tapestry5.services.Heartbeat
org.apache.tapestry5.services.javascript.JavaScriptSupport
org.test.MyData
It's strange that It says MyData not found, but there are MyData in
availableValues.
Many Thanks.
--
Bo Gao
[email protected]