我正在尝试使用弹簧验证框架在一个操作上验证 2 个模型属性。目的是在单击“搜索”按钮时验证lookUpbean(搜索条件),然后验证生成的bean,即一旦我们从服务中获取它的memberShipbean,以便我们可以在结果中的某些字段为空时向用户显示警告豆。
<form:form method="POST" modelAttribute="lookupPageBean" id="lookupForm" name="lookupForm"
action="lookupMembership.htm">
<td class="error">
<form:errors path="membershipNumber" />
<form:input class="medium-textbox" id="membershipNumber" path="membershipNumber" />
<button type="submit" class="Active-button-small">
<fmt:message key="button.go" />
</button>`
@RequestMapping(method = RequestMethod.POST, value = URLMappingConstant.MEMBERSHIP_LOOKUP)
public String viewMembership(ModelMap modelMap, HttpServletRequest request, HttpServletResponse response,
@ModelAttribute(UIConstant.LOOKUP_PAGE_BEAN) LookupPageBean lookupPageBean, BindingResult result,
@ModelAttribute(UIConstant.MEMBERSHIP_BEAN) MembershipPageBean membershipPageBean, BindingResult error) throws WebMTracksException
{
membershipValidator.validate(lookupPageBean, result);
membershipValidator.validate(membershipPageBean, error);
}
现在发生的事情是第一次验证工作正常,但是在第二次验证期间,错误消息没有显示在结果 jsp 上,但是在“错误”绑定结果中直到这个控制器层才报告错误。
同样在验证层
ValidationUtils.rejectIfEmpty(errors, UIConstant.BUSINESSNAME,ValidationMSGConstants.BUSINESS_NAME)
即使该字段不为空,此方法也始终返回验证错误。
第一个问题是我们能否在一个动作中拥有多个模型属性。我在互联网上的某个地方读到它,但找不到任何相同的实现。请帮我解决这个问题。如果您能想到任何其他可行的解决方案来解决这个问题,也请告诉我,但我只想使用 spring 框架进行验证,因为这有助于维护应用程序的现有设计。