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

skaffman在Spring MVC @Controller 返回空视图名称时意味着什么是正确的,因为代码不会说谎。

因此,根据文档和代码:视图名称是从 url 派生的(而不是从方法名称派生的)。

我认为另一个问题(Spring MVC @RequestMapping ... 使用方法名称作为操作值?)(及其答案)有点误导,因为请求 url 和方法名称是相同的。

于 2013-01-23T07:01:46.380 回答