Введение в Web MVC framework. Контроллер.ч.1

Итак, как и обещал меньше воды больше кода. Да, как говорил Козьма Прутков: «Нельзя объять необъятное», но попытаться надо. Поэтому если у строки нет коммента то это оттого, что объяснение этой строки затронет еще не рассмотренные темы, доменные объекты бины итд. Все будет в свое время. Полностью файл можно найти на гитхабе, а здесь рассмотрим как работают наши методы.

@Controller
public class CategoryController {

    private static final Logger LOGGER = LoggerFactory.getLogger(CategoryController.class);

    @Autowired
    public Dao dao;

    @RequestMapping("/category")
    // если наш браузер передает контроллеру запрос 
    // http://localhost:8080/category
    // то контроллер выполнит метод viewCategory()
    public ModelAndView viewCategory() throws SQLException, ClassNotFoundException {
    // этот метод возвращает после работы ссылку на объект типа ModelAndView
    // этот тип имеет несколько важных полей, рассмотрим его внимательнее
    //public class ModelAndView {
    //  private Object view; /** Содержит ссылку на объект типа View или на строку, которая этот вью       идентифицирует */
    //  private ModelMap model; /** это ссылка на модель, модель грубо говоря это хэшмап с передаваемыми значениями */
    //

        LOGGER.debug("Received request for SELECT from table CATEGORY");
        return new ModelAndView("category", "viewCategory", dao.listCategory());

    }

    @RequestMapping(value = "/category_insert.html", method = RequestMethod.GET)
    public ModelAndView getInsertCategoryView() throws SQLException, ClassNotFoundException {
        LOGGER.debug("Received request for get InsertCategory View");
        return new ModelAndView("category_insert", "insert_form", new CategoryInsertForm());
    //  создаем и возвращаем ссылку на ModelAndView используя конструктор
    //  public ModelAndView(String viewName, String modelName, Object modelObject) {
    //      this.view = viewName;
    //      addObject(modelName, modelObject);
    //  }
    //  "category_insert" - эту строку DispatcherServlet использует для определения какая jsp будет 
    //  использована для отображения
    //  "insert_form" - это имя модели, которое мы будем использовать чтобы обращаться к модели из сервлета
    //  а это сама модель с данными
    }

Ну вот примерно так. Статья будет расширяться описанием остальными методами.

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s