On 9/3/07, Eelco Hillenius <[EMAIL PROTECTED]> wrote:
> > I use wicket 1.2 for now.
>
> Yeah, unfortunately it doesn't work for 1.2. It's one of the
> improvements for 1.3.
We'll upgrade for the next release once this one is out...
> But either override getLocale in your session, or set it using a
> custom session factory.
Thanks for the support and ideas.
But for the record:
Overriding getLocale() would surely work, but sounds like even worse
of a hack than setLocale(_), and when I set the locale in the
ISessionFactory it gets reset by the locale in the request just like
when I set it in the session constructor. (which is to be expected,
really.)
Here's my current plan to manage the locale (and to display the logged
in user while I'm at it), please tell me what's wrong with it, I get
an exception about the model being a null object:
public class DetachableSessionModel extends LoadableDetachableModel {
@Override
protected Object load() {
return Session.get();
}
}
public class LocalePanel extends MCCNPanel {
public LocalePanel(String id) {
super(id);
Form form = new Form("form");
add(form);
form.setModel(new DetachableSessionModel());
List<Locale> locales = new Vector<Locale>();
locales.add(new Locale("hu"));
locales.add(new Locale("sr"));
locales.add(CentrexSession.get().getLocale());
form.add(new DropDownChoice("locale", locales, new
ChoiceRenderer("language", "language") ));
form.add(new Button("submit"));
}
}
When I submit:
java.lang.IllegalStateException: Attempt to set model object on null
model of component: topLeftPanel:form:locale
at wicket.Component.setModelObject(Component.java:2013)
at wicket.markup.html.form.FormComponent.updateModel(FormComponent.java:840)
at wicket.markup.html.form.Form$11.formComponent(Form.java:923)
at wicket.markup.html.form.Form$4.component(Form.java:465)
at wicket.MarkupContainer.visitChildren(MarkupContainer.java:744)
at wicket.markup.html.form.Form.visitFormComponents(Form.java:461)
at wicket.markup.html.form.Form.updateFormComponentModels(Form.java:914)
at wicket.markup.html.form.Form.process(Form.java:896)
at wicket.markup.html.form.Form.onFormSubmitted(Form.java:310)
at java.lang.reflect.Method.invoke(Method.java:597)
at wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:187)
at
wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:74)
at
wicket.request.compound.DefaultEventProcessorStrategy.processEvents(DefaultEventProcessorStrategy.java:65)
at
wicket.request.compound.AbstractCompoundRequestCycleProcessor.processEvents(AbstractCompoundRequestCycleProcessor.java:57)
at wicket.RequestCycle.doProcessEventsAndRespond(RequestCycle.java:896)
at wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:929)
at wicket.RequestCycle.step(RequestCycle.java:1010)
at wicket.RequestCycle.steps(RequestCycle.java:1084)
at wicket.RequestCycle.request(RequestCycle.java:454)
at wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:219)
at wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:262)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at
org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:290)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:268)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:339)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:261)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:212)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at
com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]