Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Play 2.4: Form: could not find implicit value for parameter messages: play.api.i18n.Messages

I am new to Play framework and tried to mimic the helloworld sample in my local machine but I encountered an error:

enter image description here

routes:

# Home page GET        /                    controllers.Application.index  # Hello action GET        /hello               controllers.Application.sayHello   # Map static resources from the /public folder to the /assets URL path GET        /assets/*file        controllers.Assets.versioned(path="/public", file: Asset) 

controller:

package controllers  import play.api.mvc._ import play.api.data._ import play.api.data.Forms._  import views._  class Application extends Controller {    val helloForm = Form(     tuple(       "name" -> nonEmptyText,       "repeat" -> number(min = 1, max = 100),       "color" -> optional(text)     )   )    def index = Action {     Ok(html.index(helloForm))   }    def sayHello = Action { implicit request =>       helloForm.bindFromRequest.fold(       formWithErrors => BadRequest(html.index(formWithErrors)),       {case (name, repeat, color) => Ok(html.hello(name, repeat.toInt, color))}     )   } } 

view:

@(helloForm: Form[(String,Int,Option[String])])  @import helper._  @main(title = "The 'helloworld' application") {      <h1>Configure your 'Hello world':</h1>      @form(action = routes.Application.sayHello, args = 'id -> "helloform") {         @inputText(             field = helloForm("name"),             args = '_label -> "What's your name?", 'placeholder -> "World"         )          @inputText(             field = helloForm("repeat"),             args = '_label -> "How many times?", 'size -> 3, 'placeholder -> 10         )          @select(             field = helloForm("color"),             options = options(                 "" -> "Default",                 "red" -> "Red",                 "green" -> "Green",                 "blue" -> "Blue"             ),             args = '_label -> "Choose a color"         )          <p class="buttons">             <input type="submit" id="submit">         <p>      }  } 

I have Play 2.4 installed and created the project using IntelliJ Idea 14 via activator template.

like image 798
arjayads Avatar asked Jun 12 '15 09:06

arjayads


1 Answers

After adding implicit messages parameters to views you can just add the following imports and use the old controller classes or even objects without any additional changes:

import play.api.Play.current import play.api.i18n.Messages.Implicits._ 
like image 59
ps_ttf Avatar answered Nov 07 '22 11:11

ps_ttf