Scala-PlayFramework2.5에서 2.2 시대의 todolist 튜토리얼을 해 보았다 · 그 3

2959 단어 PlayFrameworkScala
그 2 에서 계속.
화면의 초기 표시까지 할 수 있었으므로, 나머지는 실제로 화면을 움직여 본다.

하지만 계속 들어가기 전에 지금의 상태에서 Create 버튼을 누르면 아래와 같은 에러가 된다.
Unauthorized
You must be authenticated to access this page.

그래서 다음과 같은 수정을 수행합니다.

Application.scala
-    def tasks = Action {
+    def tasks = Action { implicit request =>

index.scala.html
-@(tasks: List[Task], taskForm: Form[String])(implicit messsages:Messages)
+@(tasks: List[Task], taskForm: Form[String])(implicit messsages:Messages, request: RequestHeader)

...

     @form(routes.Application.newTask) {
+        @CSRF.formField
         @inputText(taskForm("label")) 

「양식 게시 처리」장


  • Application.scalanewTask 액션 코드를 구현한다.

  • "데이터베이스의 작업 유지"장


  • build.sbtconf/application.conf 에 각각 이하의 설정을 추기한다.

  • build.sbt
    libraryDependencies += evolutions
    libraryDependencies ++= Seq(
        jdbc,
        "com.typesafe.play" %% "anorm" % "2.4.0"
    )
    

    application.conf
    db.default.driver=org.h2.Driver
    db.default.url="jdbc:h2:mem:play"
    
  • 명령 프롬프트에서 Ctrl+D를 눌러 서버를 중지하고 exit 명령을 사용하여 sbt를 종료합니다. 2번째 이후의 기동은 sbt run 커맨드 일발로 ok.
  • 튜토리얼에 따라 에볼루션 스크립트 1.sql를 작성한다.
  • 브라우저를 다시 로드하고 Apply this script now! 버튼을 누릅니다.
  • 튜토리얼에 따라 Task.scala 의 코드를 구현한다.

  • 이렇게하면 목록을 새로 추가 할 수 있습니다.


    "작업 삭제"장


  • Application.scaladeleteTask 액션 코드를 구현한다.

  • 이것에 의해 todo 리스트의 삭제 조작도 실시할 수 있게 된다.

    그리고, 생각이나 삭제 조작에 대해서도
    Unauthorized
    You must be authenticated to access this page.
    

    가 되어 버리기 때문에, 추가시와 같이 코드 수정을 실시한다.

    index.scala.html
                     @form(routes.Application.deleteTask(task.id)) {
    +                    @CSRF.formField
                         <input type="submit" value="Delete">
    

    이상.

    좋은 웹페이지 즐겨찾기