I'm trying to follow the example in the Javadoc for DropDownChoice
which says:
Java:
List SITES = Arrays.asList(new String[] { "The Server Side", "Java Lobby",
"Java.Net" });
// Add a dropdown choice component that uses Input's 'site' property to
designate the
// current selection, and that uses the SITES list for the available options.
// Note that when the selection is null, Wicket will lookup a localized
string to
// represent this null with key: "id + '.null'". In this case, this is
'site.null'
// which can be found in DropDownChoicePage.properties
form.add(new DropDownChoice("site", SITES));
HTML:
<select wicket:id="site">
<option>site 1</option>
<option>site 2</option>
</select>
I follow this quite closely. The code is inside a form:
List<String> recCapNames = new ArrayList<String>();
for (Capability cap : recognizedCaps)
recCapNames.add(cap.toString());
final DropDownChoice permissionDropDown = new DropDownChoice(
"permissionDropdown", recCapNames);
add(permissionDropDown);
<select wicket:id="permissionDropdown">
<option>P1</option>
<option>P2</option>
</select>
The page renders fine. The dropdown shows the right elements in the list
when I pull it down,
and allows me to select one, etc. But when I hit any button on the form
it pukes,
complaining about trying to setModelObject on a null model.
(I have several buttons on the form, only one of which is related to the
DropDownChoice,
and they all fail the same way. Their onSubmit() methods never get
reached: some sort of
general process of form-handling is run first, and that's where the
exception happens.)
Stack dump below. Wicket 1.5 RC2.
Any ideas?
Thanks in advance
Jim
Stackdump:
Root cause:
java.lang.IllegalStateException: Attempt to set model object on null
model of component:
AdministerGroupForm:permissionspanel:permissionpanelform:permissionDropdown
at
org.apache.wicket.Component.setDefaultModelObject(Component.java:3006)
at
org.apache.wicket.markup.html.form.FormComponent.updateModel(FormComponent.java:1038)
at
org.apache.wicket.markup.html.form.Form$FormModelUpdateVisitor.component(Form.java:221)
at
org.apache.wicket.markup.html.form.Form$FormModelUpdateVisitor.component(Form.java:192)
at
org.apache.wicket.util.visit.Visits.visitPostOrderHelper(Visits.java:274)
at
org.apache.wicket.util.visit.Visits.visitPostOrderHelper(Visits.java:263)
at org.apache.wicket.util.visit.Visits.visitPostOrder(Visits.java:246)
at
org.apache.wicket.markup.html.form.FormComponent.visitComponentsPostOrder(FormComponent.java:384)
at
org.apache.wicket.markup.html.form.Form.internalUpdateFormComponentModels(Form.java:1669)
at
org.apache.wicket.markup.html.form.Form.updateFormComponentModels(Form.java:1634)
at org.apache.wicket.markup.html.form.Form.process(Form.java:807)
at
org.apache.wicket.markup.html.form.StatelessForm.process(StatelessForm.java:61)
at
org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:743)
at
org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:685)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:259)
at
org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:215)
at
org.apache.wicket.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:171)
at
org.apache.wicket.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:157)
at
org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:706)
at
org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:63)
at
org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:212)
at
org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:253)
at
org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:138)
at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:194)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1323)
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:474)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:517)
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:935)
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:404)
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:184)
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:870)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:346)
at
org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:596)
at
org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1068)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:807)
at
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:220)
at
org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:426)
at
org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:241)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:528)
at java.lang.Thread.run(Unknown Source)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]