如何在Wicket java中为Dropdownchoice和Checkbox添加验证
我在html页面中有一个复选框和下拉列表。单击submit(提交)时,如果同时选择了这两个字段,则它们应该是一条错误消息,其中任何一个字段都应该是必填字段,并要求至少选择一个值 我创建了一个新类作为FormValidator,实现了IValidator并重写了validate方法。但我不知道如何在submit方法调用上使用下拉选择值和复选框值,以及如何在html中显示 Java代码-如何在Wicket java中为Dropdownchoice和Checkbox添加验证,java,html,checkbox,wicket,dropdownchoice,Java,Html,Checkbox,Wicket,Dropdownchoice,我在html页面中有一个复选框和下拉列表。单击submit(提交)时,如果同时选择了这两个字段,则它们应该是一条错误消息,其中任何一个字段都应该是必填字段,并要求至少选择一个值 我创建了一个新类作为FormValidator,实现了IValidator并重写了validate方法。但我不知道如何在submit方法调用上使用下拉选择值和复选框值,以及如何在html中显示 Java代码- IModel<Project> dropdownModel = new PropertyMode
IModel<Project> dropdownModel = new PropertyModel<Project>(criteria,"selectedBillableProject");
DropDownChoice<Project> billableProjectsList = new DropDownChoice<>(
"projectsList",
dropdownModel,
billableProjects,
new ChoiceRenderer<Project>("fullNameWithCustomer"));
billableProjectsList.setLabel(new ResourceModel("printMonth.billable"));
form.add(billableProjectsList);
我已更新FormComponentValidTo或类似于:
但它在submit()上导致以下错误。11-26@22:37:25 ERROR org.apache.wicket.request.cycle.RequestCycle-处理错误消息时出错
java.lang.IllegalStateException:流
位于org.eclipse.jetty.server.Response.getWriter(Response.java:693)
位于javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:152)
位于javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:152)
位于org.springframework.security.web.context.saveContextOnUpdate或ErrorResponseWrapper.getWriter(saveContextOnUpdate或ErrorResponseWrapper.java:125)
位于org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:109)
位于org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:179)
位于org.apache.wicket.protocol.http.BufferedWebResponse$WriteCharSequenceAction.invoke(BufferedWebResponse.java:171)
位于org.apache.wicket.protocol.http.BufferedWebResponse.writeTo(BufferedWebResponse.java:602)
位于org.apache.wicket.request.handler.render.webagerenderer.respond(webagerenderer.java:232)
位于org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:175)
位于org.apache.wicket.request.cycle.RequestCycle$handleExecutor.respond(RequestCycle.java:890)
位于org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
位于org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:310)
位于org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:319)
位于org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:319)
位于org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:319)
位于org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:319)
位于org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:319)
位于org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:319)
位于org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:319)
位于org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:319)
位于org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:319)
位于org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:319)
位于org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:233)
位于org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:289)
位于org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259)
位于org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201)
位于org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282)
位于org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1484)
位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
位于org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
位于org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
位于org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
位于org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
位于org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
位于org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1484)
位于org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:151)
位于org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
位于org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476)
位于org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)
位于org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
位于org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
位于org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
位于org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
位于org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)
位于org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
位于org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
位于org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
位于org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
位于org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
位于org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
位于org.eclipse.jetty.server.server.handle(server.java:370)
位于org.eclipse.jetty.server.AbstractHttpConnection.HandlerRequest(AbstractHttpConnection.java:494)
位于org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConn
protected void onSubmit() {
.....
validateInputComponents(reportCriteria);
.....
}
public void validateInputComponents(ReportCriteria reportCriteria){
add(new FormComponentValidator(reportCriteria.getSelectedBillableProject(), unbillableProjectsView.getModelObject()));
}