Страничка курса: https://maxcom.github.io/scala-course-2022/
Будем делать "классический" сайт, а не приложение.
(не будем писать код на front-end)
Задание:
Сделаем HTML форму для ввода текста.
Обработчик вернет класс текста (позитив/негатив) и исходный текст с диагностикой (html подсветка!).
Используем HTML шаблоны Twirl
project/plugins.sbt
addSbtPlugin("com.typesafe.sbt" % "sbt-twirl" % "1.5.1")
build.sbt
enablePlugins(SbtTwirl)
src/main/twirl/views/form.scala.html
@(text: Option[String], category: Option[String],
debug: Option[String])
Классификатор
@if(category.nonEmpty) {
Результат: @category
@debug
}
В контроллере возвращаем HTML:
implicit val twirlMarshaller: ToEntityMarshaller[Html] =
Marshaller.withFixedContentType(`text/html(UTF-8)`) { html =>
HttpEntity(`text/html(UTF-8)`, html.body)
}
complete(form(None, None, None))
Добавляем обработку формы
См. документацию
Страшный "программистский" дизайн?
Можно легко исправить
Используем готовый CSS шаблон
Популярный вариант: Bootstrap
Его можно подключить как зависимость в sbt
libraryDependencies ++= Seq(
"org.webjars.npm" % "bootstrap" % "5.1.3",
"org.mdedetrich" %% "akka-http-webjars" % "0.5.0")
/webjars/bootstrap.min.css
Срок сдачи - 4 мая.