Spring Framework. Урок 20: Модель. Передача данных от контроллера к представлению.

Поділитися
Вставка
  • Опубліковано 5 лип 2020
  • ПОЛНЫЙ КУРС ПО SPRING (Hibernate, REST, Boot, Security): swiftbook.org/courses/438
    Продвинутая Java - swiftbook.org/courses/415
    Мои уроки по Java EE - • Java EE для начинающих
    Репозиторий прошлого урока (Стартовый проект) - github.com/NeilAlishev/Spring...
    Репозиторий урока - github.com/NeilAlishev/Spring...
    Реклама и сотрудничество: alishev.neil@gmail.com

КОМЕНТАРІ • 180

  • @alishevN
    @alishevN  3 роки тому +17

    ПОЛНЫЙ КУРС ПО SPRING (Hibernate, REST, Boot): swiftbook.org/courses/438
    Плейлист этого курса: ua-cam.com/play/PLAma_mKffTOR5o0WNHnY0mTjKxnCgSXrZ.html
    Telegram: t.me/alishev_g

    • @user-cx5ry5tt6s
      @user-cx5ry5tt6s 3 роки тому +1

      Я уж думал, что схожу с ума. Думаю вроде бы 20 урок был уже. Хорошо, что зашёл в комменты ))) спасибо за ваш труд

  • @hovhannesayvazyan2339
    @hovhannesayvazyan2339 3 роки тому +98

    Пожалйуста не забрасывайте эти лекции по спрингу, я до сих пор жду новые...

    • @konstantine5711
      @konstantine5711 3 роки тому

      мы все ждем)

    • @user-cx5ry5tt6s
      @user-cx5ry5tt6s 3 роки тому +1

      эх я начинал тоже по этим урокам. прошло уже почти пол года......ппц.. Но скажу так, на англоязычном ютубе очень много информации) сейчас я гуру в спринг))) советую

    • @hovhannesayvazyan2339
      @hovhannesayvazyan2339 3 роки тому

      @@user-cx5ry5tt6s посоветуй пожалуйста пару каналов если не сложно. Спасибо

    • @user-cx5ry5tt6s
      @user-cx5ry5tt6s 3 роки тому +4

      @@hovhannesayvazyan2339 amigoscode ( один из тех, что прям запомнилось) у Гоши Дударя кстати есть уроки еще. ОБЯЗАТЕЛЬНО к просмотру)

    • @hovhannesayvazyan2339
      @hovhannesayvazyan2339 3 роки тому

      @@user-cx5ry5tt6s понял, благодарю)

  • @user-sk6ds6tn2c
    @user-sk6ds6tn2c 8 місяців тому +1

    идет 2023 год. прошел полный курс джава по 4-5 летнему курсу давности и погнал спринг по 3ех годовому. спасибо большое Алишев. не зря говорят если сделано на совесть значит на века. курсы топчик.

  • @AnnaIsHere
    @AnnaIsHere 3 роки тому +12

    Задание + последующее раскрытие решения - просто замечательно. Спасибо за полезные уроки!

  • @user-eq8ny4in9c
    @user-eq8ny4in9c 3 роки тому +19

    Наиль, спасибо за домашние задания, которые вы даете на протяжении всего курса!

  • @Vitek_23
    @Vitek_23 Рік тому +5

    С Java 14 можно использовать особый switch, где не надо break писать)
    Double result = switch (action){
    case "multiply" -> a*b;
    case "div" -> a/b;
    case "sub" -> a - b;
    case "add" -> a + b;
    default -> null;
    };

  • @agaliarept5154
    @agaliarept5154 3 роки тому +18

    Спасибо, все как обычно на высшем уровне

  • @user-qx4xk5dq4v
    @user-qx4xk5dq4v 3 роки тому +11

    Спасибо за урок! Как всегда всё отлично!!! Ждем REST)

    • @user-bm6od4fc9e
      @user-bm6od4fc9e 3 роки тому

      в REST все гораздо проще: вместо @Controller пишите @RestController, а вместо имени view возвращаете JSON

  • @michaeldeyev8809
    @michaeldeyev8809 3 роки тому +4

    С большим удовольствием смотрю Ваши уроки!
    Жду платный курс по Spring:)

  • @rustamplai5977
    @rustamplai5977 3 роки тому +23

    брат уже месяц нет новых видео(( как то можно ускорить??? может даже платно сделать.

  • @ruzoompartygmail4273
    @ruzoompartygmail4273 10 місяців тому

    Вы огромный молодец! Лучшие материалы по Spring. Спасибо!

  • @bogdangaiduk5752
    @bogdangaiduk5752 3 роки тому

    Большое спасибо за курс 🙏
    Все очень круто 😀
    Все очень доступно и понятно
    Ждём продолжения ))

  • @rhythmicpulse2760
    @rhythmicpulse2760 2 роки тому

    Спасибо за урок. Классно объясняешь, побольше бы таких людей)

  • @user-ic1ef5yw7n
    @user-ic1ef5yw7n 3 роки тому +9

    Вот это темп!
    Спасибо!

  • @user-de6dd1dd8e
    @user-de6dd1dd8e 3 роки тому +17

    Здравствуйте, Наиль. Сделайте, пожалуйста, продолжение этого курса. Очень хорошо рассказываете, такой подачи материала не нашел ни у кого. Приобрел "Продвинутую Java" и очень доволен , готов приобрести ваши новые курсы!

    • @VladGeneral
      @VladGeneral 3 роки тому +2

      Держи, так будет быстрее. www.udemy.com/course/spring-hibernate-tutorial/

    • @nadirmusaev3508
      @nadirmusaev3508 3 роки тому +2

      @@VladGeneral Кстати да отличный курс, разложил Spring на молекулы! Еще канал letsCode довольно хорош!

    • @nonamestation
      @nonamestation 3 роки тому +1

      Sunder спасибо за ссылку ✊

    • @the_leonik
      @the_leonik 3 роки тому

      бесплатного материала гора, а вы ждете продолжения здесь)
      с таким успехом спринг поймете очень не скоро, один источник для учебы такое себе

    • @antongromov8093
      @antongromov8093 3 роки тому

      @@the_leonik привет. Можешь посоветовать ещё ,по твоему мнению, хорошие источники для изучения Spring?)

  • @iorgankrat1118
    @iorgankrat1118 3 роки тому

    Спасибо вам большое за урок, с нетерпением ждем продолжение.

  • @tmvvmt6975
    @tmvvmt6975 Рік тому

    Лучший курс в интернете по Spring!

  • @user-uw6um7uk5x
    @user-uw6um7uk5x 3 роки тому +1

    Господи аж прослезилась. я тебя люблю.

  • @Andrzej3935
    @Andrzej3935 2 роки тому +1

    Просто, доступно, информативно!

  • @user-bm6od4fc9e
    @user-bm6od4fc9e 3 роки тому

    неожиданно, я то думал нормальную форму для ввода значений нарисуешь, а ты схалтурил :) за уроки спасибо!

  • @Glebok2078
    @Glebok2078 3 роки тому +3

    Спасибо огромное за твой труд, твои видео очень полезны! Прикрути донаты к видео, или способ как тебе помочь финансово, я думаю нашлось бы немало людей готовых тебе перевести, пусть и небольшую, но благодарность за твои старания, ты их заслужил!

  • @user-hs1fv9tp6x
    @user-hs1fv9tp6x 3 роки тому +1

    Спасибо за курс!

  • @heavenstunes1297
    @heavenstunes1297 Рік тому

    Просто супер уроки. Жду продолжения, буду весьма благодарен !)

    • @alishevN
      @alishevN  Рік тому

      Продолжение: swiftbook.org/courses/438

  • @user-vh6mj6cp1k
    @user-vh6mj6cp1k 3 роки тому

    Огромное Вам спасибо, посмотрел 2 плейлиста по Java EE и по String Framework. Очень много вещей разъяснили)
    P.S. сразу питониста видно по решётке в качестве комментария))

  • @stanislavshilo6022
    @stanislavshilo6022 3 роки тому

    В Целом подача огонь, спасибо тебе!

  • @alexeykorovko6704
    @alexeykorovko6704 3 роки тому +12

    можно добавить, что у аннотации @RequstParam не обязательно указывать значение в скобках, в таком случае будет использоваться имя переменной, которая после аннотации

    • @manOfPlanetEarth
      @manOfPlanetEarth 3 роки тому

      👍🏼 использоваться в качестве ключа.

  • @user-nq1pk8ji8m
    @user-nq1pk8ji8m 3 роки тому +1

    Отличные уроки! Жаль что так редко.

  • @Nelsons1992
    @Nelsons1992 3 роки тому +1

    мы требуем продолжения!

  • @natalyak3057
    @natalyak3057 3 роки тому

    Спасибо за урок! ещё один способ написания калькулятора :D

  • @user-ve8jb1yw8d
    @user-ve8jb1yw8d 3 роки тому

    Спасибо за урок

  • @asdasd-fu4ow
    @asdasd-fu4ow 3 роки тому +1

    Спасибо большое!

  • @user-vg8qg6rh1d
    @user-vg8qg6rh1d Рік тому

    то чувство, когда Домашка сработала правильно ) Спасибо.

  • @user-ox1id6yq1y
    @user-ox1id6yq1y 3 роки тому

    Добрый день. В первую очередь, благодарю за видео уроки.
    Подскажите, пожалуйста, будут ли ещё видеоуроки по спрингу? И если да, то как скоро планируются?
    Спасибо за урок и хорошего дня!

  • @vladtvn9086
    @vladtvn9086 3 роки тому

    Здравствуйте, какое количество видео планируется делать по этому курсу? Огромная благодарность за старания)

  • @user-xb8tu8pp1w
    @user-xb8tu8pp1w 3 роки тому +3

    Спасибо за курс!!!) Благодаря вам есть интерес дальше по Spring двигаться))) Делал также калькулятор, но вместо "addition" и т.д. сделал '+' '-' '*' '/' через char. Знает кто, почему '+' не работает в этом случае - выдает 0.0? Вроде ошибок нет, остальные знаки работают отлично. Хммм...

  • @alexandrkilin5379
    @alexandrkilin5379 3 роки тому +3

    Ждем урок с подключением к БД

  • @fachelgo5202
    @fachelgo5202 3 роки тому

    годнота подъехала

  • @tatianaosipova7060
    @tatianaosipova7060 3 роки тому +1

    Здравствуйте, Наиль! Спасибо огромное за ваш труд. Посмотрела все ваши уроки по Java, для начинающих, продвинутую, EE, досматриваю Spring. Могли бы посоветовать какие-то еще ресурсы - ютуб каналы, еще какие-нибудь курсы на юдеми может? Можно на английском. Интересно было бы посмотреть на реализацию целого проекта - какую-нибудь простенькую базу на несколько таблиц, самый примитивный интерфейс с кнопочками, чтение, запись данных, запрос к таблицам, вывод в файл.

    • @user-sj2np1rc4u
      @user-sj2np1rc4u 3 роки тому +1

      Евгений Сулейманов и его сайт proselyte.net. На его канале уже меньше объяснений, а больше примеров приложений. Ну и серия мок интервью оч крутая. Крч, тут смотрим теорию, там практику, а дальше уже проще становится со всем разобраться

  • @blackmulthumor
    @blackmulthumor 3 роки тому

    Спасибо

  • @zionweeds
    @zionweeds 2 місяці тому

    кайф чувак!

  • @ilyanenashev
    @ilyanenashev 3 роки тому

    Вы можете сделать урок про внешние и внутренние циклы for на джаве?чтобы было более понятно,как они работают

  • @user-df9lg3og6z
    @user-df9lg3og6z 3 роки тому +3

    А как сделать, чтобы в html русский текст отображался? А то у меня вместо "Результат" иероглифы

  • @it-solutions05
    @it-solutions05 3 роки тому +1

    Провел анализ просмотров уроков. К сравнению: 1 урок - около 122000, 20 урок - 3583 просмотра. Не смотря на полезность и уникальность преподаваемого материала, сквозь тернии к звездам прорываются не многие. Спасибо большое Наиль!!!

    • @manOfPlanetEarth
      @manOfPlanetEarth 3 роки тому

      ну так первый урок болтается в сети уже года 2? а 20й? месяц?
      ты, конечно, аналитик от бога😂 вот чз 2 года и смотри просмотры на 20м уроке.

    • @it-solutions05
      @it-solutions05 3 роки тому

      @@manOfPlanetEarth Прошел 1 месяц. Просмотров на текущий момент - 7662 (прирост около 4100 просмотров). Актуальность видео со временем только падает. Даже если предположить, что прирост просмотров в месяц останется стабильным, через 2 года с момента публикации ожидается - 4100*10+7662 = 48662, что существенно меньше, чем 122000. Не понимаю, что Вы нашли для себя на образовательном канале

    • @manOfPlanetEarth
      @manOfPlanetEarth 3 роки тому

      Руслан Гаджиев
      просто сравни чз 2 года и тогда и констатируй что-то. тебе в дурку надо со своими диагнозами по интернету☝🏼
      на твой БЕССМЫСЛЕННЫЙ вопрос, что я делаю на образовательном канале ответ ПРОСТЕЙШИЙ: ОЗНАКАМЛИВАЮСЬ СО СПРИНГОМ!!
      пс
      первому уроку 18 мес, 20му 3 месяца, разница 15 месяцев. ты хоть свой прирост в 4.1к умножай на 15!!! месяцев, а не на 10. так что сиди и сам отвечай на вопрос: что ты тут забыл? аналитик от бога🤦‍♂️😂😂😂

    • @it-solutions05
      @it-solutions05 3 роки тому

      @@manOfPlanetEarth вопрос был риторический. Хотя откуда Вам знать о культуре речи... У Вас тяжелый диагноз, обратитесь к психотерапевту

    • @manOfPlanetEarth
      @manOfPlanetEarth 3 роки тому

      Руслан Гаджиев
      у тебя слабоумие, пупсик, срочно к психиатру.
      и по делу ничего, как и ожидалось. счетовод хоенов🤦‍♂️😂

  • @aliakseidev5390
    @aliakseidev5390 2 роки тому +2

    spasibo

  • @vladimirkoreshkov8777
    @vladimirkoreshkov8777 3 роки тому +3

    Здравствуйте. Планируется ли рассказ про Spring Security?

  • @aojona
    @aojona Рік тому

    Все супер, только вместо switch предпочтительнее использовать enum

  • @Artur_Maji
    @Artur_Maji 2 роки тому

    Чтобы не было ошибки без ввода параметров, добавить defaultValue к аргументам типа int и сделать проверку на null для стринга.

  • @Libra7by
    @Libra7by 3 роки тому

    А при выполнении блока division разве не надо вставить проверку деления на ноль?

  • @ShaddTM00
    @ShaddTM00 3 роки тому

    Всё посмотрел от и до. Абсолютно ВСЁ понял. Когда следующие уроки будут?

    • @alishevN
      @alishevN  3 роки тому +1

      На следующей неделе

    • @ShaddTM00
      @ShaddTM00 3 роки тому

      @@alishevN супер :-)

  • @jizzervirusreptikonski8756
    @jizzervirusreptikonski8756 3 роки тому

    У вас будут еще уроки по java ee? Ну там может юдеми.

  • @kengerfil
    @kengerfil 3 роки тому +3

    13:30
    Для секции "default" ставить брейк не обязательно

  • @IDmytro7
    @IDmytro7 3 роки тому

    man please, go on!

  • @Last_Feanoring
    @Last_Feanoring 2 роки тому

    Вот бы еще узнать как добавить на страницу два edit поля для считывания а и б, и 4 кнопки для действий) было бы поинтересней.

  • @bekazhumashev8665
    @bekazhumashev8665 3 роки тому +1

    Наиль,большое спасибо вам,за то что вы делаете!Вы - большой мастер своего дела!
    3 дня назад решил посмотреть первый урок этого курса и не заметил как я уже оказался на последнем(на данный момент) уроке.
    Что посоветуете дальше учить самостоятельно,чтобы стать Junior Java Developer-ом?(опыт работы с базами данных присутствует)
    Очень жду новых видео!Буду рад вашему ответу!)

    • @alishevN
      @alishevN  3 роки тому +1

      Спасибо!
      Продолжать изучать Spring Framework.

    • @user-mc4tq4zt4k
      @user-mc4tq4zt4k 2 роки тому

      @@alishevN Наиль, спасибо большое за прекрасные уроки.
      Поддерживаю вопрос Beka Zhumashev,
      Что после спринга учить?

  • @hadow7634
    @hadow7634 3 роки тому

    А я немного иначе сделал, чтобы ноль не получать ноль по дефолту(ведь мы можем сделать 5 -5, например): Если операция некорректная, то в модель идет атрибут со строкой "Wrong operation", после цикла идет проверка по методу model.addAttribute, если false, то в атрибут идет полученный answer

  • @VirtuozEd
    @VirtuozEd 3 роки тому

    Вы проводите онлайн курсы по python?

  • @rostyslavmochulskyi159
    @rostyslavmochulskyi159 3 роки тому +1

    Здраствуйте, спасибо за уроки. Такая проблема: в проекте есть index.jsp, его успешно грузит Tomcat. Хочу поменять welcome page на index.html. Но при смене расширения файла его не находит Tomcat. В web.xml в папке conf в Tomcat ничего не менял, там есть:
    index.html
    index.htm
    index.jsp
    Пожалуйста, помогите, как сделать так чтоб находило index.html при загрузке localhost:8080/. В пустом проекте, без конфига в Java коде (с сгенерированным илеей пустым web.xml файлом), находит index.html, а вот при конфиге в коде, как в уроках, находит только jsp.
    Буду ОЧЕНЬ благодарен за помощь

  • @user-sy3uo4ki6v
    @user-sy3uo4ki6v 3 роки тому

    Как вернуть в одном запросе несколько файлов? Например мне хочется вернуть мой html, который включает css и парочку js файлов? (Конечно можно все скрипты и css вбить прям в html и вернуть, но принципиально сделать именно разными файлами)

  • @dmitrylubyanov7277
    @dmitrylubyanov7277 3 роки тому

    Ахаха. Мне понравился комментарий: "Это можно сделать в Intellij IDEA, потому что она позволяет нам это сделать" lmao

  • @user-wo9kv3yx3k
    @user-wo9kv3yx3k 3 роки тому

    Подскажите что сделать чтоб кириллицу отображало корректно.

  • @ivankuzmin4132
    @ivankuzmin4132 2 роки тому

    А как то иначе можно импортировать класс в html? Не через модуль. Как вставить туда результат метода calculator?

  • @user-gx6be1lu2h
    @user-gx6be1lu2h 3 роки тому

    Правильно ли я понимаю, что при использовании thymeleaf можно и в @GetMapping, и в return-e метода указывать одну и ту же страницу, здесь "/first/calculator" и это и будет динамическим отображением? То есть не нужно будет в return указывать другую страницу, на которой будет отображаться результат?

    • @manOfPlanetEarth
      @manOfPlanetEarth 3 роки тому

      в return указывается не url, а название html файла, который отобразится в ответ на запрос по адресу, который указан в @GetMapping("...")

  • @lora7818
    @lora7818 3 роки тому

    Добрый день, можно ли у вас спросить не по теме этого видео. Хочу попробовать изучать программирование, мне много лет уже, учили в школе паскаль и с++ , очень нравилось, потом выбрала не ту профессию. Когда это все вспоминаю - захватывает дух. Хочу обучаться сама, но я не ориентируюсь вообще, с чего начать и к чему это приведет. Что более восстербовано. Хотела бы для начала на фрилансе подрабатывать. Мне посоветовали начать изучать Пайтон (именно по первому уроку нашла ваш канал). Урок ваш 2018 года. Хочу спросить, актуален ли еще этот язык, восстребован ли он, на правильном ли я пути в 2020 году ?

  • @andreyp.541
    @andreyp.541 3 роки тому +6

    Здравствуйте! У Вас есть на каком-нибудь ресурсе платные или бесплатные уроки по СпрингБут или Гибернейт? Готов тратить деньги на обучение, но везде плохо "разжевывают" материал.

    • @alishevN
      @alishevN  3 роки тому +3

      Пока нет. В процессе.

  • @lalik777
    @lalik777 3 роки тому

    Спасибо. А почему в примере с калькулятором если передать в параметрах ( @RequestParam ( value="a" , requiered = false ) Double a , ...... , Model model ) { } и при деплой на томкат , то когда переходим на /first/calculator без передачи в браузере параметров то выбрасывает куча ошибок ? А в предыдущем методе контроллера sayHello() при @RequestParam ( value = "name" , requiered = false )все работает ?

    • @ersulkrutoy4774
      @ersulkrutoy4774 6 місяців тому

      у меня тоже самое вопрос

  • @user-bm8xn5hu5f
    @user-bm8xn5hu5f 3 роки тому +5

    @alishev Как избавиться от "???" вместо русских букв?

    • @user-bm8xn5hu5f
      @user-bm8xn5hu5f 3 роки тому

      Чтобы Было по-русски написано "Результат:"

    • @alishevN
      @alishevN  3 роки тому +5

      вот так: github.com/NeilAlishev/SpringCourse/commit/4270957dd2f458c0c03630ff56cce4f41bf04f09

    • @user-bm8xn5hu5f
      @user-bm8xn5hu5f 3 роки тому

      @@alishevN Спасибо большое, сам вчера уже нашел этот ответ. Теперь знаю, что он правильный. Еще раз спасибо.

    • @pavelnekrasov985
      @pavelnekrasov985 3 роки тому

      @@alishevN Огромное спасибо за Ваши уроки, уважаемый Наиль. Внес все необходимые исправления в файлы, потом даже полностью (с необходимой правкой путей) скопировал в проект Ваши, но кодировка так и не исправилась. В конфигурацию Tomcat никаких правок вносить не надо было? Буду благодарен за ответ. P.S. С удовольствием прошел Ваш курс на Udemy "Продвинутая Java". Благодарю и присоединяюсь к просьбам касательно аналогичного курса по Spring.

  • @ladamira3477
    @ladamira3477 4 місяці тому

    Наиль, подскажите пожалуйста, почему у меня тимлиф в браузере не виден?

  • @NiflheimForever
    @NiflheimForever 3 роки тому

    Что за next в 5 уроке продвинутой Java? Как он хранит ссылку на несколько объектов? Вообще не понял.

    • @NiflheimForever
      @NiflheimForever 3 роки тому

      3 часа перечитываю код, вообще не пойму.

  • @alialiev7503
    @alialiev7503 3 роки тому +2

    Спасибо за очень познавательные уроки! Я реализую корзину на сайте магазина. Можете направить куда копать? У меня есть сущность Корзина, я хочу туда добавлять сущность Продукт. Я так понимаю нужно методом Пост отправить Продукт и сущность Пользователь в метод для обработки и там же делать редирект на эту страницу. Но по-моему я задумал слишком геморройный путь... И как вообще отправить сущность текущего Пользователя?

    • @alialiev7503
      @alialiev7503 3 роки тому

      Ну или дайте знать, через сколько уроков примерно я смогу это сделать?)

    • @user-ue8tc1tk1n
      @user-ue8tc1tk1n 3 роки тому +1

      @@alialiev7503 один из вариантов добавления текущего юзера - использовать в параметрах нужного контролера @AuthenticationPrincipal User user - поищите в интернете что-как, там просто.

    • @alialiev7503
      @alialiev7503 3 роки тому

      @@user-ue8tc1tk1n Спасибо за информацию! Посмотрю)

  • @Libra7by
    @Libra7by 3 роки тому +1

    В лекции "Spring - Глубоко и не очень" Борисов ругался за использование switch case, там правда приводился пример проблемы в большом проекте.
    У него же подсмотрел очевидную (кроме новичков, конечно) конструкцию через делегирование выполнения:
    public class CalculatorLib {
    private CalculatorAction calculatorAction;
    private HashMap hashMapCalculatorAction = new HashMap();
    public CalculatorLib() {
    hashMapCalculatorAction.put("multiplication", new Multiplication());
    hashMapCalculatorAction.put("addition", new Addition());
    hashMapCalculatorAction.put("subtraction", new Subtraction());
    hashMapCalculatorAction.put("division", new Division());
    }
    public int calculatorActionLib(int a, int b, String action) {
    calculatorAction = hashMapCalculatorAction.get(action);
    return calculatorAction.action(a, b);
    }
    }

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil Рік тому +1

      для учебного примера свитч это то что нужно
      здесь идет изучение спринга

  • @laptoplaptop9216
    @laptoplaptop9216 Рік тому

    Можно было в результирующую переменную поместить NaN(Not a Number)

  • @arthurfonzerelli6484
    @arthurfonzerelli6484 3 роки тому +1

    Планируется ли контент по реактивному программированию вообще и реактивной java в частности?

    • @alishevN
      @alishevN  3 роки тому

      Имеете в виду RxJava или Java 9 Flow API?

    • @arthurfonzerelli6484
      @arthurfonzerelli6484 3 роки тому

      @@alishevN ну, я пока знаю только о project reactor - это из той же оперы?

    • @alishevN
      @alishevN  3 роки тому

      да, из той же оперы.
      такой контент планируется, но не в ближайшем будущем.

  • @user-xt1zd4tm4u
    @user-xt1zd4tm4u 3 роки тому +2

    Как передать данные через ссылку href в контроллер ?
    Java

    • @alishevN
      @alishevN  3 роки тому

      Показывал на прошлом уроке

    • @user-xt1zd4tm4u
      @user-xt1zd4tm4u 3 роки тому +1

      @@alishevN Увидел, но там статическая передача.
      Как подставить значение в ссылку?
      То есть, имеем так :

    • @manOfPlanetEarth
      @manOfPlanetEarth 3 роки тому

      @@user-xt1zd4tm4u
      переменная в представлении? так можно?
      нашел как сделать?

  • @user-cs7zw8iu8q
    @user-cs7zw8iu8q 3 роки тому

    А сколько уроков планируется на этом курсе? Ну чтобы подготовить ожидание к терпению )))

  • @aoveden197727
    @aoveden197727 3 роки тому +2

    Наиль, нужна работа в Спринге с БД (MySQL), реализация DAO - в подробностях, как вы умеете.

  • @aidynaubakirov2302
    @aidynaubakirov2302 3 роки тому +1

    Извините меня за глупый вопрос , какой стек спринга мы используем? Spring Boot или Spring MVC? Я просто запутался с этими разными спрингами. Не судите строго ;)

    • @MultiWismut
      @MultiWismut 3 роки тому +1

      В уроках используется MVC. Так как в pom.xml не подключен Spring Boot

    • @alishevN
      @alishevN  3 роки тому +6

      Сейчас мы используем Spring MVC, но дальше в курсе подключим еще и Spring Boot для упрощения конфигурации.
      MVC и Boot - это не разные спринги. Это компоненты Spring Framework и они используются вместе.

    • @aidynaubakirov2302
      @aidynaubakirov2302 3 роки тому

      @@alishevN Благодарю за ответ

  • @esselesse
    @esselesse 3 роки тому +1

    почему и откуда Model инжектится в контроллер безо всяких аннотаций?

    • @user-pv6fp7ur7p
      @user-pv6fp7ur7p 3 роки тому

      Импортируется зависимость в класс import org.springframework.ui.Model;

  • @user-fq9gn2yu4i
    @user-fq9gn2yu4i 3 роки тому +1

    Решил попробовать switc через char : + - / *. Так вот, почему то работает всё, кроме операции +, выбрасывает в дефолтовое поведение

    • @user-jj1wv7ds8r
      @user-jj1wv7ds8r 3 роки тому

      кто нибудь знает в чем причина? Почему операция "+" не работает?

    • @Yinchik_pepe
      @Yinchik_pepe Рік тому

      @@user-jj1wv7ds8r разобрался почему с «+» не работает?

  • @alexgaew4213
    @alexgaew4213 3 роки тому

    Ещё будут видео о Spring?

  • @xaptmah5354
    @xaptmah5354 3 роки тому

    Очень хорошие видео. спасибо.
    Только вот не понятно как заставить thymeleaf сменить кодировку на utf-8 и заставить его отображать русский текст на странице, я уже всю голову сломал, пробовал задать ее через templateResolver.setCharacterEncoding("UTF-8"), не помогает, в configureViewResolvers задавал, один фиг((((

    • @Razbuer
      @Razbuer Рік тому

      Для будущих поколений может пригодиться))
      @Bean
      public SpringResourceTemplateResolver templateResolver() {
      SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
      templateResolver.setApplicationContext(applicationContext);
      templateResolver.setPrefix("/WEB-INF/views/");
      templateResolver.setSuffix(".html");
      templateResolver.setCharacterEncoding("UTF-8");
      return templateResolver;
      }
      @Override
      public void configureViewResolvers(ViewResolverRegistry registry) {
      ThymeleafViewResolver resolver = new ThymeleafViewResolver();
      resolver.setTemplateEngine(templateEngine());
      resolver.setCharacterEncoding("UTF-8");
      registry.viewResolver(resolver);
      }

  • @Denys_Lapshyn_1
    @Denys_Lapshyn_1 3 роки тому

    Не понял только одну вещь: у нас один объект модели для всей программы или каждое представление имеет только тот объект модели который передавался в вызвавший его контроллер?

    • @user-nv8hz7jl5s
      @user-nv8hz7jl5s 3 роки тому

      Вроде бы второе.Испрваьте,пожалуйста, если не прав.Тоже не догоняю

    • @Denys_Lapshyn_1
      @Denys_Lapshyn_1 3 роки тому

      @@user-nv8hz7jl5s да, второе, я на практике проверил

  • @user-ln1ps3lv9r
    @user-ln1ps3lv9r 3 роки тому

    Народ, кто может подсказать по архитектуре? Допустим, у меня есть одна html страница, где генерируется отображение для разных страниц одного раздела. Скажем, в разделе "словарь" есть подразделы разного уровня слов.
    Через thymeleaf я могу каждому уровню присвоить свой параметр, затем перехватить параметр в контроллере и, в зависимости от параметра, вернуть список слов нужного уровня из БД, затем в html'е через thymeleaf определить, что это за данные (ибо страница одна для отображения разных данных) и отобразить html так, как мне нужно.
    Либо я могу сделать для каждого уровня слов отдельный контроллер и всю логику разбирать в них, но получается огромное количество одинакового кода в каждом отдельном контроллере.
    Как сделать правильно? Первый случай мне кажется неправильным, ибо огромное количество логики перекачевывает в html. Во втором огромное количество дубирования кода, его можно вынести в отдельный метод, конечно, но я не видел, чтоб в разделе контроллеров выносили отдельные методы.
    Можно делать разные контроллеры и отсылать из них параметры для БД в какой-то общий контроллер, чтоб не дублировать код, а затем из него переходить в представление, но тогда опять через thymeleaf нужно разбирать, какие именно данные нам поступили - опять много логики в html. Где-нибудь вообще про такие моменты можно почитать?

  • @stanislavshilo6022
    @stanislavshilo6022 3 роки тому

    В этом решении плохо то, что a и b могут быть вообще не проинициализированы, если просто зайти на страницу, калькулятор. Когда передавал эти параметры как строки и потом парсил к числам, легко можно было проверить на null, а для int эта задача становиться всё более интересной....

  • @user-si7lb4hq3c
    @user-si7lb4hq3c 2 роки тому

    было бы здорово использовать вместо свича рефлексию

  • @casualenjoyer6.95
    @casualenjoyer6.95 Рік тому

    Мне кажется лучше было бы сделать реквест параметры строкой, а потом парсить до дабл, в варианте показанном в видео не сработает, если ввести числа с плавающей запятой

  • @cold_heart_i
    @cold_heart_i 2 роки тому

    в default оператор break не нужен , так как он всегда самый последний)

    • @RomanDnipro1221
      @RomanDnipro1221 Рік тому

      Не всегда. Поставьте первым, и посмотрите что будет

  • @ZeBatua
    @ZeBatua Рік тому

    Я несколько сложнее сделал калькулятор, а именно дал именно знаки, а не строку в качестве математического действия. Если кто тоже так сделал и не получается поймать из строки "+", то он заменяется на пробел как зарезервированное значение. Кому интересно ZeBatua git

    • @mariaivanova9102
      @mariaivanova9102 Рік тому

      не нашла в репозитарии ваш код по адресу ZeBatua, там только с и с++ код. Я сделала также как Вы. но в запросе ставлю вместо "+" "%2B"

  • @user-yf8pf6ut9z
    @user-yf8pf6ut9z 3 роки тому

    День добрый! Вопрос наверно которым задаются многие, на сколько актуально сейчас изучать Spring framework если есть тот же MVC и Boot? Если для базового понимания как что работает, то вопросов нет. Или есть другие причины? А за курс отдельный респект!)

    • @alishevN
      @alishevN  3 роки тому

      Spring MVC и Spring Boot - это составляющие компоненты Spring Framework.

    • @user-yf8pf6ut9z
      @user-yf8pf6ut9z 3 роки тому

      @@alishevN То есть без знания Spring Framework будет сложно кодить на Boot и MVC?

    • @alishevN
      @alishevN  3 роки тому

      @@user-yf8pf6ut9z Spring MVC и Spring Boot - это и есть Spring Framework. Посмотрите первый урок из плейлиста.

    • @user-yf8pf6ut9z
      @user-yf8pf6ut9z 3 роки тому

      @@alishevN Спасибо за ответ!

  • @videosound7884
    @videosound7884 3 роки тому

    Зачем return в методе helloPage? - Для наглядности?

    • @alishevN
      @alishevN  3 роки тому

      Почему для наглядности? без него работать не будет.

    • @videosound7884
      @videosound7884 3 роки тому

      @@alishevN Работает :) Spring - реализует интерфейс сервлета. А Servlet содержит всего 2 метода doGet() и doPost() которые по умолчанию void.
      С помощью model.addAttribute() мы устанавливаем response.set (HttpServletResponse), а возвращаемые значения (return) каким-то образом передаются в метод response.sendRedirect (я не ковырялся в наследованиях, поэтому не могу точно сказать, где и как это происходит). Кроме того, у сервлета тоже есть Dispatcher, которому мы делаем @Override добавляя extends AbstractAnnotationConfigDispatcherServletInitializer

    • @alishevN
      @alishevN  3 роки тому

      @@videosound7884 я просто не понимаю, как без этого return'а Спринг поймет, какое представление показывать пользователю.

    • @videosound7884
      @videosound7884 3 роки тому

      @@alishevN Согласен, можно запутаться. Я тоже путаюсь... Нужно исходить из того, что HttpServletResponse - это поток. Хороший пример для понимания - ajax запросы. Можно объявить вместо Model в качестве параметра HttpServletResponse и через PrintWriter писать на страницу ответ сервера без перезагрузки страницы.
      Я задавался этим вопросом на habr-е, и в комментариях сам же дал ответ. Нужно только поменять Writer на response в качестве параметра, а потом передать в PrintWriter response OutputStream qna.habr.com/q/955427
      Следует также добавить: Spring я изучал (и сейчас учу и повторяю) по вашим урокам (хорошая ускоренная версия обучения). Так что мой комментарий - это не повод для каких-то выводов. Мало того! :) Благодаря вашим урокам, я уже задаюсь вопросами сборки и развёртывания проектов: ru.stackoverflow.com/questions/1259414/Как-правильно-собрать-jar-проект-spring-bootmaven

  • @user-hu8uw3fr6m
    @user-hu8uw3fr6m 2 роки тому

    Сделал задачу в отдельном контроллере, также составил свитч, но там прописывал каждый раз свои атрибуты, чтобы выводилась строка что там к чему операция и чему равно. Сами операции в отдельных методах. И какой-то нуль поинт выпадает. Подергался, ошибок не нашел и стал смотреть урок. Разницы не понял. А когда ты ввел в строку параметры, то увидел, что я не прописал переменную операция=, а сразу влупил операцию. 1,5 часика поразвлекался.)) А иначе и не запомнишь. Теперь два запроса можно делать. кстати деление на ноль я учел. А ты?))))

  • @user-zq7cv8uk5q
    @user-zq7cv8uk5q 3 роки тому +1

    Что ж у вас все вычисления в контроллере происходят? Вот молодые и будут городить там всю логику

    • @alishevN
      @alishevN  3 роки тому +7

      Когда дойдем до сервисов, перенесем логику из контроллеров. Я же не могу все за один урок рассказать - нарушится последовательность.

  • @NacWay_
    @NacWay_ Рік тому

    @GetMapping("/calculator")
    public String getCalculator(@RequestParam(value = "a", required = false) Double a,
    @RequestParam(value = "b", required = false) Double b,
    @RequestParam(value = "operation", required = false) String operation,
    Model model){
    StringBuilder stringBuilder=new StringBuilder();
    if(operation.equals("multiplication")) stringBuilder.append(a+"*"+b +"=" +(a*b));
    if(operation.equals("addition")) stringBuilder.append(a+"+"+b +"=" +(a+b));
    if(operation.equals("subtraction")) stringBuilder.append(a+"-"+b +"=" +(a-b));
    if(operation.equals("division")) stringBuilder.append(a+"/"+b +"=" +(a/b));
    model.addAttribute("resOperation", stringBuilder.toString());
    return "first/calculator";