簡體   English   中英

Spring MVC中的@Controller和@RequestMapping有什么區別?

[英]What is the difference between @Controller and @RequestMapping in Spring MVC?

我的MVC中有以下代碼;

...
...
@Controller
public class HelloController{

@RequestMapping("/hello")
public ModelAndView sayHelloMethod(){
.....

我打了URI localhostXXXXX\\root\\hello.htm ,搜索DispatcherServlet並映射到該處理程序,即@Controller類,並調用了“ / hello”映射方法。 我無法理解DispatcherServlet如何映射到sayHelloWorldMethod?

我試圖更改類名和@RequestMapping字符串名,並且僅當它們都包含“ hello”字符串時,此示例才能正常工作。

@Controller將使被注釋的類充當控制器,簡單來說,調度程序servlet將在啟動時初始化的所有bean類中查找您指定的路徑。

@Requestmapping將請求映射到指定的方法。 假設,如果我的URI是這樣的http:// localhost:8080 / Home / Hello

我在控制器中的代碼是:

@controller
class Hello extends .... {

   @RequestMapping("Home/Hello")
   public .... sayHello() {
      /* your code here
      */
   }
}

這里的Home / Hello是@RequestMapping注釋。 因此,分派器將搜索您的請求並將其映射到控制器中的sayHello方法。

首先,控制器本身的名稱無關緊要。 @Controller批注用於將該組件標記為控制器,以便稍后在映射api調用中使用。

雖然@RequestMapping用於設置帶注釋方法的端點URL,但這意味着您可以根據需要更改方法的名稱(sayHelloMethod)。 因此,設置@RequestMapping(value =“ / hello”,method = RequestMethod.GET)會將帶有GET請求的“ / hello” URL映射到此方法。

因此,這里唯一重要的是@RequestMapping url的名稱

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM