Hi,
Im trying to create a component which initializes a PropertySelection
component based on a parameter provided to my own component.
I have placed the setup code in prepareForRender() since the parameter
does not seem to be set in pageBeginRender()
public abstract class BasketItem extends BaseComponent{
@Parameter(required=true)
public abstract ShoppingItem getItem();
public abstract StringPropertySelectionModel getPropertyModel();
public abstract void setPropertyModel(StringPropertySelectionModel
spsm);
public abstract String getQuantity();
public abstract void setQuantity(String quantity);
public abstract ShoppingItem getShoppingItem();
public abstract void setShoppingItem(ShoppingItem item);
protected void prepareForRender(IRequestCycle arg0) {
// prepare the StringPropertySelectionModel
String[] options = new String[getItem().getQuantity()];
for(int i=0;i<options.length;i++){
options[i] = String.valueOf(i+1);
}
setPropertyModel(new StringPropertySelectionModel(options));
setQuantity(String.valueOf(getItem().getQuantity()));
setShoppingItem(getItem());
super.prepareForRender(arg0);
}
.
.
.
}
<form jwcid="@Form" listener="listener:doSubmit">
<input jwcid="@Hidden" value="ognl:shoppingItem"/>
<span jwcid="@InsertText" value="ognl:item.itemName"/>
<span jwcid="@InsertText" value="ognl:item.quantity"/>
<span jwcid="@InsertText" value="ognl:item.quantity"/>
<span jwcid="@PropertySelection" value="ognl:quantity"
model="ognl:propertyModel"/>
<span jwcid="@Submit" selected="ognl:selected" tag="update"
label="Update quantity"/>
<span jwcid="@Submit" selected="ognl:selected" tag="remove"
label="Remove all"/>
</form>
This seems to be working fine until I submit and I get the following
NullpointerException
Stack Trace:
*
org.apache.tapestry.form.PropertySelection.rewindFormComponent(PropertySelection.java:118)
*
org.apache.tapestry.form.AbstractFormComponent.renderComponent(AbstractFormComponent.java:115)
* org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:617)
*
org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:434)
* org.apache.tapestry.form.FormSupportImpl.rewind(FormSupportImpl.java:564)
* org.apache.tapestry.form.Form.renderComponent(Form.java:226)
* org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:617)
* org.apache.tapestry.form.Form.rewind(Form.java:327)
* org.apache.tapestry.engine.RequestCycle.rewindForm(RequestCycle.java:439)
* org.apache.tapestry.form.Form.trigger(Form.java:338)
*
org.apache.tapestry.engine.DirectService.triggerComponent(DirectService.java:146)
* org.apache.tapestry.engine.DirectService.service(DirectService.java:132)
* $IEngineService_10bddc7119f.service($IEngineService_10bddc7119f.java)
*
org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:66)
* org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:248)
*
org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:60)
*
$WebRequestServicer_10bddc7117a.service($WebRequestServicer_10bddc7117a.java)
*
org.apache.tapestry.services.impl.DisableCachingFilter.service(DisableCachingFilter.java:48)
*
$WebRequestServicerFilter_10bddc7117c.service($WebRequestServicerFilter_10bddc7117c.java)
*
$WebRequestServicer_10bddc7117e.service($WebRequestServicer_10bddc7117e.java)
*
$WebRequestServicer_10bddc71176.service($WebRequestServicer_10bddc71176.java)
*
org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:56)
*
$ServletRequestServicer_10bddc7115a.service($ServletRequestServicer_10bddc7115a.java)
*
org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
*
$ServletRequestServicerFilter_10bddc71156.service($ServletRequestServicerFilter_10bddc71156.java)
*
$ServletRequestServicer_10bddc7115c.service($ServletRequestServicer_10bddc7115c.java)
*
org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
*
$ServletRequestServicerFilter_10bddc71154.service($ServletRequestServicerFilter_10bddc71154.java)
*
$ServletRequestServicer_10bddc7115c.service($ServletRequestServicer_10bddc7115c.java)
*
org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
*
$ServletRequestServicerFilter_10bddc71158.service($ServletRequestServicerFilter_10bddc71158.java)
*
$ServletRequestServicer_10bddc7115c.service($ServletRequestServicer_10bddc7115c.java)
*
$ServletRequestServicer_10bddc7114e.service($ServletRequestServicer_10bddc7114e.java)
*
org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:123)
* org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java:168)
* javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
* javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
*
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
*
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
*
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
*
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
*
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
*
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
*
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
* org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
* org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
*
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
*
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
*
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
*
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
* java.lang.Thread.run(Unknown Source)
I am not sure what Im doing wrong, is there another place to read
parameters?
regards
Erik
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]