Skip to content

Commit 731f679

Browse files
committed
Part 15: Add GreetingController.java
1 parent da5898b commit 731f679

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package spring.oldboy.http.controller;
2+
3+
/*
4+
Part 15: Lesson 71 - Создаем наш первый контроллер для работы со Spring MVC;
5+
Part 15: Lesson 72 - Мапим (картируем, указываем соответствие запрос-метод ответа),
6+
наши методы на соответствующие *.jsp страницы.
7+
*/
8+
9+
import jakarta.servlet.http.HttpServletRequest;
10+
import org.springframework.stereotype.Controller;
11+
import org.springframework.web.bind.annotation.RequestMapping;
12+
import org.springframework.web.bind.annotation.RequestMethod;
13+
import org.springframework.web.servlet.ModelAndView;
14+
import spring.oldboy.database.repository.company_repository.CompanyRepository;
15+
16+
/* Помечаем специальной аннотацией см. док. DOC/SpringWebServlet/ControllerInterface.txt */
17+
@Controller
18+
public class GreetingController {
19+
20+
/*
21+
Part 15: Lesson 71:
22+
В примитивном варианте мы бы просто создали ModelAndView объект через конструктор
23+
см. ниже метод *.bye():
24+
25+
ModelAndView modelAndView = new ModelAndView();
26+
27+
Но, мы уже знаем, что Spring, прекрасно все сделает за нас, если мы его попросим
28+
внедрить необходимую зависимость. Что мы и делаем через параметры метода. Теперь,
29+
осталось только задать имя отображения (наш dynamic_hello.jsp). Но сделать это нужно без
30+
указания префикса (prefix: /WEB-INF/jsp/) и суффикса (suffix: .jsp) указанных в
31+
application.yml. Что мы и делаем в *.setViewName("greeting/hello").
32+
33+
В схеме DOC/SpringWebServlet/DispatcherServlet/DispatcherServletWorkingScheme.jpg
34+
мы видели, что у нас есть масса HandlerMethodArgumentResolver, которые могут
35+
подставить в наши методы нужные объекты, например, HttpServletRequest или
36+
CompanyRepository, пусть в данном примере, пока, мы их не используем.
37+
38+
Part 15: Lesson 72:
39+
Используем аннотацию @RequestMapping() с параметрами, где указываем обработчик
40+
ответа (*.jsp страницу и метод GET) на запрос для каждого из написанных методов
41+
нашего контроллера.
42+
*/
43+
@RequestMapping(value = "/hello", method = RequestMethod.GET)
44+
public ModelAndView hello(ModelAndView modelAndView,
45+
HttpServletRequest request,
46+
CompanyRepository companyRepository) {
47+
modelAndView.setViewName("greeting/hello");
48+
/* Возвращаем отображение */
49+
return modelAndView;
50+
}
51+
52+
@RequestMapping(value = "/bye", method = RequestMethod.GET)
53+
public ModelAndView bye() {
54+
ModelAndView modelAndView = new ModelAndView();
55+
/* Задаем отображение на запрос BYE, так же без префикса и суффикса */
56+
modelAndView.setViewName("greeting/bye");
57+
/* Возвращаем отображение */
58+
return modelAndView;
59+
}
60+
}

0 commit comments

Comments
 (0)