0

私はを使用しSpring 3.0.6ており、コントローラーメソッドがvoid戻り型を宣言した(またはnullを返す)ときに何が起こるかに関して、いくつかの(明らかに)矛盾するステートメントに気づきました。次のことを考慮してください。

@Controller
@RequestMapping(value="admin/*")
public class AdminController {

    @RequestMapping
    public ResponseEntity<String> hello() { 
      System.out.println("hellooooooo");
    }
}

これは、ここで説明されているように、ビュー名をメソッド名として使用します。ただし、ここで受け入れられた回答に記載されているように、ビュー名はurlから派生しています(メソッド名ではありません)。問題の方法は次のとおりです。

@Controller
@RequestMapping("/form")
public class FormController {
    @RequestMapping(method=RequestMethod.POST)
    public String processSubmit(@Valid FormBean form, 
                BindingResult result, 
                WebRequest webRequest, 
                HttpSession session, Model model) {

        if (result.hasErrors()) {
             return null;
        } else {
            session.setAttribute("form", form);
            return "redirect:/form";            
        }
    }
}
4

1 に答える 1

1

Spring MVC @Controllerがnullビュー名を返すどういう意味ですか?コードは嘘をつかないので、は正しいものです。

したがって、ドキュメントとコードによると、ビュー名はURLから派生しています(メソッド名からではありません)。

もう1つの質問(Spring MVC @ RequestMapping…メソッド名をアクション値として使用しますか?)(およびその回答)は、リクエストURLとメソッド名が同じであるため、少し誤解を招くと思います。

于 2013-01-23T07:01:46.380 に答える