クラス A と B の 2 つのクラスを作成しました。クラス A には calculate メソッドがあります。
@RequestMapping(method = RequestMethod.POST)
public String calculate(
HttpServletRequest request,
PlanVO planVO,
BindingResult result,
Map<String, Object> model) throws ParserConfigurationException,
SAXException, IOException {
validator.validate(planVO, result);
if (result.hasErrors()) {
model.put(PLAN_VO, planVO);
return "test";
}
クラス B にも、以下に示すように、同じパラメーターを持つ同じメソッドがあります。
@RequestMapping(method = RequestMethod.POST)
public String calculate(
HttpServletRequest request,
PlanVO planVO,
BindingResult result,
Map<String, Object> model) throws ParserConfigurationException,
SAXException, IOException {
validator.validate(planVO, result);
if (result.hasErrors()) {
model.put(PLAN_VO, planVO);
return "test";
}
コードを実行すると、クラス A が入力を検証し、test.jsp が開かれます。test.jsp では、 を使用してエラーが表示されています<spring:errors path="*"/>
。
クラス B に対して同じことを行うと、BindingResult オブジェクトに入力された入力が検証され、応答が test.jsp に送られます。しかし、私はエラーを見ることができません。
また、クラス B のメソッド シグネチャを更新すると、@modelAttribute("planVO") PlanVO planVO,
以下のように機能し始めます。
@RequestMapping(method = RequestMethod.POST)
public String calculate(
HttpServletRequest request,
@ModelAttribute("planVO") PlanVO planVO,
BindingResult result,
Map<String, Object> model) throws ParserConfigurationException,
SAXException, IOException {
validator.validate(planVO, result);
if (result.hasErrors()) {
model.put(PLAN_VO, planVO);
return "test";
}
ここで、クラス A がこの @ModelAttribute を要求しない理由、またはクラス B がこれを要求する理由を尋ねたいと思います。
前もって感謝します。