I am new to Play framework and tried to mimic the helloworld sample in my local machine but I encountered an error:
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.
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._
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With