0

クラス 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 がこれを要求する理由を尋ねたいと思います。

前もって感謝します。

4

0 に答える 0