Playframework не отображает тег формы: Scala

Я пытаюсь следовать учебному пособию по игровой платформе, которое можно увидеть в «localhost: 9000».

Как говорится, я отредактировал файл и скомпилировал, но он не показывает ожидаемого результата. Следите за тем, что я сделал.

  1. сделать проект воспроизведения в консоли (команда: воспроизвести новую альфу)
  2. затем я запустил это (переместите каталог «альфа» и запустите воспроизведение)
  3. создайте папку с именем «модели» в /alpha/app/controllers.
  4. Изменить Application.scala

    package controllers
    
    import play.api._ 
    import play.api.mvc._ 
    import play.api.data._ 
    import play.api.data.Forms._
    
    import models.Task
    
    object Application extends Controller {
    
      val taskForm = Form("label" -> nonEmptyText)
    
      def index = Action {
        //Ok(views.html.index("Your new application is ready."))
        //Ok("Let's Play!")
        Redirect(routes.Application.tasks)   }
    
      def tasks = Action {
        Ok(views.html.index(Task.all(), taskForm))   }   def newTask = Action { implicit request =>
        taskForm.bindFromRequest.fold(
          errors => BadRequest(views.html.index(Task.all(), errors)),
          label => {
            Task.create(label)
            Redirect(routes.Application.tasks)
          }
        )   
      }   def deleteTask(id: Long) = TODO 
    }
    
  5. сделать /alpha/controllers/models/Task.scala

    package models
    
    case class Task(id: Long, label: String)
    
    object Task {   
      def all(): List[Task] = Nil   
      def create(label: String) {}   
      def delete(id: Long){} 
    }
    
  6. #P5# <блочная цитата>
    # Routes
    # This file defines all application routes (Higher priority routes first)
    # ~~~~
    
    # Home page
    GET     /                           controllers.Application.index
    
    # Map static resources from the /public folder to the /assets URL path
    GET     /assets/*file               controllers.Assets.at(path="/public", file)
    
    #Tasks
    GET     /tasks                  controllers.Application.tasks
    POST    /tasks                  controllers.Application.newTask
    POST    /tasks/:id/delete       controllers.Application.deleteTask(id: Long)
    
  7. #P6# <блочная цитата> #P7#

Я не могу это отследить, потому что это не было ошибкой. Есть ли какая-нибудь подсказка, чтобы исправить эти ошибки? Если вы дадите решение или подсказку, это будет очень признательно: D

========== Спасибо, что поделились моей проблемой ======================

[ index.scala.html ]

> @* Comment : @(message: String) *@ @(task: List[Task], taskForm:
> Form[String]) @import helper._
> 
> @main("Todo list") {
> 
>   <h1>@task.size task(s)</h1>
> 
>   <ul>
>     @task.map { task =>
>       <li>
>         @task.label
> 
>         @form(routes.Application.deleteTask(task.id)) {
>           <input type="submit" value="Delete">
>         }
>       </li>
>     }   </ul>
> 
>   <h2>Add a new task</h2>
> 
>   @form(routes.Application.newTask) {
>     @inputText (taskForm("label"))
>     <input type="submit" value="Create">   } }

person Juneyoung Oh    schedule 18.02.2014    source источник
comment
Пожалуйста, включите ваш index.scala.html   -  person vitalii    schedule 18.02.2014
comment
Можете ли вы показать свой шаблон представления, где используется форма? (Я считаю, что это index.scala.html). Примечание: модели должны находиться непосредственно в папке app/, а не в controllers/   -  person psisoyev    schedule 18.02.2014
comment
@vitalii, britva, я отредактировал свой пост, чтобы теперь вы могли видеть index.scala.html. Рассматривая кнопку с нормальным выражением, я предполагаю, что в магическом ключевом слове «@» нет проблем.   -  person Juneyoung Oh    schedule 19.02.2014
comment
Я думаю, возможно, ошибка может быть @inputText. Когда я делаю эту фразу комментарием(@* *@), сообщение не печатается(BaseScalaTemplate(....) . Но я до сих пор не знаю, как это исправить.   -  person Juneyoung Oh    schedule 19.02.2014


Ответы (1)


Я нашел ошибку. Это действительно разочаровано :-( Между @inputText и параметрами есть пробел.

Так должно быть :

@inputText (taskForm("label")) -- change to --> @inputText(taskForm("label"))

В любом случае спасибо за помощь :D

person Juneyoung Oh    schedule 19.02.2014