java - 如何在 Wicket java 中为 Dropdownchoice 和 Checkbox 添加验证
问题描述
我在 html 页面中有一个复选框和下拉菜单。如果两者都被选中,点击提交时,它们应该是一条错误消息,其中任何一个都应该是必填字段,并要求至少选择一个值。
我创建了一个新类作为实现 IValidator 的 FormValidator 并覆盖了 validate 方法。但我不知道如何在提交方法调用广告中使用下拉选择值和复选框值如何在 html 中显示。
Java 代码 -
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);
}
protected void onSubmit() {
.....
validateInputComponents(reportCriteria);
.....
}
public void validateInputComponents(ReportCriteria reportCriteria){
add(new FormComponentValidator(reportCriteria.getSelectedBillableProject(), unbillableProjectsView.getModelObject()));
}
我已经更新了 FormComponentValidtor,类似于:https ://cwiki.apache.org/confluence/display/WICKET/Validating+related+fields
但它导致以下错误 onSubmit ()。11-26@22:37:25 错误 org.apache.wicket.request.cycle.RequestCycle - 处理错误消息时出错 java.lang.IllegalStateException: STREAM at 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.SaveContextOnUpdateOrErrorResponseWrapper.getWriter(SaveContextOnUpdateOrErrorResponseWrapper. 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。
我错过了什么吗?请帮忙
解决方案
看起来您的表单中缺少一个 FeedbackPanel 来显示验证错误/消息。查看此处的用户指南并遵循整个示例:
https://ci.apache.org/projects/wicket/guide/8.x/single.html#_form_validation_and_feedback_messages
推荐阅读
- python - 为什么我的代码适合 Java,但不适合 Python
- java - 从 lambda 表达式中检索值(尝试进行多项选择测验 java fx)
- docker - Kubernetes 在拉取或应用部署时是否支持替代存储库?
- c# - 使用 asp.net 创建 3D 柱形图 - 如何添加 z 轴?
- java - 如何在 Eclipse 中构建一个没有 maven 和 gradle 文件且 repo 中没有 .jar 文件的 Java Github 项目
- javascript - 带有函数()的Javascript随机数生成器
- arrays - 分配数组超出维度而没有错误消息
- ruby-on-rails - 在 ruby 或 rails 中减去日期
- swift - 从 ObservableObject 发布者更新状态
- rust - 为什么使用Tcplistener传入迭代器时for循环不退出