В чем разница между @Controller и @RequestMapping в Spring MVC? - PullRequest
0 голосов
/ 28 апреля 2018

У меня следующий код в моем MVC;

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

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

Я нажал на URI localhostXXXXX\root\hello.htm, и DispatcherServlet провел поиск и сопоставился с этим обработчиком, т. Е. Классом @Controller, и вызвал сопоставленный метод "/ hello". Я не в состоянии понять, как DispatcherServlet сопоставляет слова HelloWorldMethod?

Я пытался изменить как имя класса, так и имя @RequestMapping String, и только если оба они содержат строку "hello", этот пример работает иначе.

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

Прежде всего, имя самого контроллера не имеет значения. Аннотация @Controller используется для обозначения этого компонента как контроллера, который будет использоваться последним при отображении вызовов API.

В то время как @RequestMapping используется для установки URL-адреса конечной точки аннотированного метода, это означает, что вы можете изменить имя метода (sayHelloMethod) по своему усмотрению. Поэтому установка @RequestMapping (value = "/ hello", method = RequestMethod.GET) отобразит URL "/ hello" с запросом GET к этому методу.

Таким образом, здесь важно только имя - имя @RequestMapping url

0 голосов
/ 28 апреля 2018

@Controller сделает класс, аннотированный, чтобы действовать в качестве контроллера, простыми словами, сервлет-диспетчер будет искать путь, который вы указали во всех классах bean-компонентов, инициализированных при запуске.

@ Requestmapping сделает запрос сопоставленным с предназначенным методом. Предположим, если мой URI такой: http://localhost:8080/Home/Hello.

и мой код в контроллере:

@controller
class Hello extends .... {

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

Здесь Home / Hello - это то, что упоминается в аннотации @RequestMapping. Таким образом, Диспетчер выполнит поиск и отобразит ваш запрос в метод sayHello в контроллере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...