春の検証フレームワークを使用して、1 つのアクションで 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);
}
ここで何が起こっているかというと、最初の検証は正常に機能していますが、2 番目の検証では結果の jsp にエラー メッセージは表示されませんが、「エラー」バインディングの結果でこのコントローラー レイヤーまでエラーが報告されます。
検証レイヤーにも
ValidationUtils.rejectIfEmpty(errors, UIConstant.BUSINESSNAME,ValidationMSGConstants.BUSINESS_NAME)
このメソッドは、フィールドが空でない場合でも常に検証エラーを返します。
最初の質問は、1 つのアクションで複数のモデル属性を使用できるかどうかです。私はインターネットのどこかでそれを読みましたが、同じ実装を見つけることができませんでした。この問題を解決するのを手伝ってください。また、この問題に対して他に有効な解決策があれば教えてください。ただし、アプリケーションの既存の設計を維持するのに役立つため、両方の検証にはスプリング フレームワークのみを使用したいと思います。