2

こんにちは、scala play フレームワークの初心者です。簡単な登録フォームを作成し、mysql に接続して行を挿入しました。うまくいきました。json を使用してページを更新せずに、挿入された行を同じページに表示したいと思います。同じページに挿入された行を取得する方法を教えてください。よろしくお願いします。次のコードは次のとおりです。

Routes:
# Home page
GET     / controllers.Application.index
GET     /createform                 controllers.StudentController.createform()
POST    /save                   controllers.StudentController.save()    

コントローラー:生徒コントローラー

package controllers

import play.api.mvc._
import play.api.data._
import play.api.data.Forms._

import scala.collection.mutable.HashMap

import views.html
import models.Student

object StudentController extends Controller {


val studentform= Form (

tuple(
"firstname"->text,
"lastname"->text
    )
)
def createform = Action {

Ok(html.createform(studentform))

}

def save = Action { implicit request=>

studentform.bindFromRequest.fold(
errors=> BadRequest(html.createform(errors)),
{
    case(firstname,lastname)=>Student.create(firstname,lastname)
    Redirect(routes.Application.index())
}

    )

}

}

Application Controller

package controllers

import play.api._
import play.api.mvc._

object Application extends Controller {

  def index = Action {

    Redirect(routes.StudentController.createform)
    //Ok(views.html.index("Your new application is ready."))
  }

}

モデル:

パッケージモデル

import play.api.db._
import play.api.Play.current

import anorm._
import anorm.SqlParser._

case class Student (

    id:Pk[Long]=NotAssigned,
    firstname: String,
    lastname: String

)


object Student {

def create(firstname: String,lastname:String) : Unit={

DB.withConnection{ implicit Connection=>

SQL("insert into student (Firstname,Lastname)" + "values({firstname},{lastname})"
).on(
'firstname->firstname,
'lastname->lastname
).executeUpdate()
    }

}

}

createform.scala.html を表示

@(studentform: Form[(String,String)])

@import helper._

@main(title="Student Registration Form"){

@form(action=routes.StudentController.save){

    <fieldset>
<legend>Add Student</legend>

@inputText(
field=studentform("firstname"),
args='_label->"FirstName"
)

@inputText(
field=studentform("lastname"),
args='_label->"LastName"
)
<br/>
<div class="actions">
<input type="submit" value="Submit">
<a href="@routes.Application.index">Cancel</a>
</div>

    </fieldset>


}

}

index.scala.html

@main("Welcome to Play 2.0") {

    <a href="/createform">Add a new Student</a>
}

挿入されたデータをJSONオブジェクトに保存し、同じ挿入された行をscalaの同じページに保存するというアイデアを親切に提案してください。

4

1 に答える 1