我的MVC中有以下代码;
...
...
@Controller
public class HelloController{
@RequestMapping("/hello")
public ModelAndView sayHelloMethod(){
.....
我点击URI localhostXXXXX\root\hello.htm
和DispatcherServlet搜索并映射到此处理程序,即@Controller类并调用" / hello"映射方法。我无法理解DispatcherServlet如何映射到sayHelloWorldMethod?
我试图更改类名和@RequestMapping字符串名称,并且只有当它们都包含" hello"字符串,此示例不起作用。
答案 0 :(得分:1)
@Controller将使注释的类充当控制器,简单来说,调度程序servlet将查找在启动时初始化的所有bean类中指定的路径。
@Requestmapping将使请求映射到目标方法。假设,我的URI是这样的http://localhost:8080/Home/Hello。
我在控制器中的代码是:
440MS
这里Home / Hello是@RequestMapping注释中提到的内容。因此,Dispatcher将在控制器中搜索并将您的请求映射到sayHello方法。
答案 1 :(得分:1)
首先,控制器本身的名称无关紧要。 @Controller注释用于将此组件标记为控制器,以便在映射api调用时使用。
至于@RequestMapping用于设置带注释方法的端点url,这意味着您可以根据需要更改方法的名称(sayHelloMethod)。因此,设置@RequestMapping(value =“/ hello”,method = RequestMethod.GET)会将带有GET请求的“/ hello”url映射到此方法。
因此,唯一重要的名称是@RequestMapping网址的名称