こんにちは、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の同じページに保存するというアイデアを親切に提案してください。