`
sillycat
  • 浏览: 2567435 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Playframework(6)Java Project and TODO Sample

 
阅读更多
Playframework(6)Java Project and TODO Sample
Create Project
>play new todolist
I choose simple java project.
>cd todolist
>play eclipsify
Make it works in eclipse.

Using the Play Console
>play
play>run

Overview and Preparing the application
Prepare the routes first, and redirect the home page to my working tasks.
The original Action is passing one parameter and send to scala html template
return ok(index.render("You new application is ready"));

The index scala html will template from the main template, pass the title and html to main
@(message: String)
@main("Welcome to Play 2.0"){
     @play20.welcome(message)
}

First define our entries in routes
#Tasks
GET       /tasks               controllers.Application.tasks()
POST      /tasks               controllers.Application.newTask()
POST      /tasks/:id/delete    controllers.Application.deleteTask(id: Long)

We can add the action in controllers, and we can return TODO instead of Result at first.

And it will return 501 Not Implemented response

Change the home page to redirect to my tasks
return redirect(routes.Application.tasks());

Prepare the Task model
package models;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.Id;
import play.data.validation.Constraints.Required;
import play.db.ebean.Model;
@Entity
publicclass Task extends Model{

privatestaticfinallongserialVersionUID = -7161351873652106184L;

@Id
public Long id;

@Required
public String label;

publicstatic Finder<Long,Task> find = new Finder<Long, Task>(
Long.class, Task.class
);

publicstatic List<Task> all(){
returnfind.all();
}

publicstaticvoid create(Task task){
task.save();
}

publicstaticvoid delete(Long id){
find.ref(id).delete();
}

}

We use Ebean, and we use @Required, @Entity in our business model.

The application template
@(tasks: List[Task], taskForm: Form[Task])

@import helper._

@main("Todo List"){
  <h1]]>@tasks.size() task(s)</h1>
    <ul>
        @for(task <- tasks) {
            <li>
                @task.label
                @form(routes.Application.deleteTask(task.id)) {
                    <input type="submit" value="Delete">
                }
            </li>
        }
    </ul>
    <h2>Add a new task</h2>
    @form(routes.Application.newTask()) {
        @inputText(taskForm("label"))
        <input type="submit" value="Create">
    }
}

We use scala in our template, just use scala edit to open them.

The Task Form and Handling the form submission

In our action, we can get the form value from request
public class Application extends Controller {

static Form<Task> taskForm = form(Task.class);
…snip…
public static Result tasks() {
     // to do will return a 501 Not Implemented response
     //return to do; Capital it and get rid of the space
     return ok(views.html.index.render(Task.all(),taskForm));
     //this render method turned red, so I import SCALA 2.9.2, it works
}

publicstatic Result newTask() {
     //return to do;
     Form<Task> filledForm = taskForm.bindFromRequest();
     if(filledForm.hasErrors()){
          //return 400 Bad Request if we have errors.
          return badRequest(
          views.html.index.render(Task.all(),filledForm)
          );
     }else{
          Task.create(filledForm.get());
          return redirect(routes.Application.tasks());
     }
}


Persist the tasks in a database
Start to enable the database configuration in our application
>vi conf/application.conf
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
ebean.default="models.*"

Deleting Tasks
publicstatic Result deleteTask(Long id) {
     //return to do;
     Task.delete(id);
     return redirect(routes.Application.tasks());
}

Deploying to Heroku
I just ignore this. I do not want to deploy on that server.

Next step I will go on study some other samples. No, I will go on with SCALA then.

References:
http://www.playframework.org/documentation/2.0.4/JavaTodoList

http://sillycat.iteye.com/blog/1750340
http://sillycat.iteye.com/blog/1750947
http://sillycat.iteye.com/blog/1751649
http://sillycat.iteye.com/blog/1752183

http://www.playframework.org/documentation/2.0.4/Samples

http://www.playframework.org/documentation/2.0.4/ScalaHome

http://www.playframework.org/documentation/1.0/gae


分享到:
评论

相关推荐

    Play framework 2.0 -第一个应用程序

    Play Framework 2.0 是一个开源的Web应用框架,它基于Scala和Java语言,遵循“模式-动作”(Action)架构,提供了一种轻量级、敏捷开发的方式。本篇文章将引导你通过创建一个简单的待办事项(Todo List)应用来了解...

    SwiftTodo, [iOS] a sample project of todo app using swift.zip

    SwiftTodo 是一个基于 iOS 平台的开源项目,它展示了如何使用 Apple 的编程语言 Swift 来构建一个待办事项(Todo)应用。这个项目对于初学者来说是一个很好的学习资源,因为它提供了一个实际应用的完整代码结构,...

    inkdrop-github-project-todo-md:墨滴

    为同步github-project-todo-md 在GitHub Project Board &lt;-&gt; Markdown Todo文本之间同步。 视频: : 安装使用安装 ipm install sync-github-project-todo-md配置设置可以从获取的GitHub个人令牌首选项&gt;插件&gt; sync-...

    Java实战项目ToDo列表应用程序.docx

    在本Java实战项目中,我们将构建一个简单的ToDo列表应用程序,主要关注任务管理的核心功能,包括添加、编辑、删除和标记任务完成。以下是实现这些功能的关键步骤和知识点: 1. **创建用户界面**: - 使用Java ...

    todo-sample,android干净架构示例.zip

    【标题】:“todo-sample,android干净架构示例.zip”指的是一个开源项目,它演示了如何在Android平台上应用“干净架构”设计模式。这个压缩包包含了名为“todo-sample-master”的源代码仓库。 【描述】:“维吉尼亚...

    java_todo_project

    【标题】"java_todo_project" 是一个基于Java编程语言的待办事项(Todo)项目,旨在帮助用户管理和跟踪他们的日常任务。这个项目可能包含了创建一个图形用户界面(GUI)以及与文件系统的交互功能。 【描述】 在...

    Todo_java_forgottenwn8_todo清单_android_

    Android简洁清爽的Todo清单工具是一个非常简洁清爽的清单工具,帮您轻松记录个人计划。本App的特色就是简洁,让人一目了然,在交互上让人体会到视觉上的舒适感。固定的4种清单分类在顶部可直接切换列表。

    eventuate-examples-java-spring-todo-list, 使用Eventuate构建的Java和 Spring Boot Todo列表应用程序.zip

    eventuate-examples-java-spring-todo-list, 使用Eventuate构建的Java和 Spring Boot Todo列表应用程序 待办事项列表示例应用程序it演示如何使用平台编写具有 microservices体系结构的应用程序,使用事件源Sourcing...

    Android代码-一个 Sample Project,收集了很多移动端跨平台技术。

    (todo, windows phone support) Learning Mobile C Slack instance! UIKonf 2014 CppCon 2014 - A Deep Dive Into Two Cross-Platform Mobile Apps Written in C CppCon 2014 - Practical Cross-Platform Mobile ...

    Todo-master_TODO网站源码_TOdo源码_android_源码

    【标题】"Todo-master"指的是一个开源的Todo应用的源代码项目,主要针对"TODO网站源码"和"TOdo源码"。这个项目可能是为了实现一个轻量级的任务管理工具,帮助用户方便地创建、管理和跟踪待办事项。"android"标签表明...

    开源bbs源码java-todo:基于Jeesite快速开发平台实现的ToDo任务管理系统

    Framework基础上搭建的一个Java基础开发平台,以Spring MVC为模型视图控制器,MyBatis为数据访问层, Apache Shiro为权限授权层,Ehcahe对常用数据进行缓存,Activit为工作流引擎。是JavaEE界的最佳整合。 JeeSite...

    todo-list-rest-services:Java Play Framework构建的Todo List Restful服务

    启动说明 准备 安装 下载或分叉 运行服务 转到终端中项目的根文件夹 运行sbt run 在浏览器中转到localhost:9000,然后单击“立即应用此脚本!”。 在您的机器上创建数据库( ~/tasks )

    Laravel开发-laravel5-sample-todo

    通过运行 `composer create-project --prefer-dist laravel/laravel laravel5-sample-todo` 命令,可以创建一个新的 Laravel 5.1 项目。然后,配置 `.env` 文件以连接到你的数据库,并执行 `php artisan migrate` ...

    angular构建todo应用 2018年6月sitePoint最新版 epub格式

    SitePoint.Learn.Angular.Build.a.Todo.App angular构建todo应用 2018年6月sitePoint最新版 epub格式

    java8看不到源码-todo-backend-springboot2-java12:SpringBoot2.2.0和Java12的Todo后

    todo-backend-springboot2-java12 SpringBoot2.2.0 和 Java 12 的 Todo 后端 这是 Todo 后端的一个实现: 这是来自: 存储库中没有测试。 您可以测试在本地运行服务并直接在此处运行规范的行为: ...

    Java开发技术大全(500个源代码).

    inheritConstruct_6.java 构造器继承示例6 inheritor.java 子类覆盖父类示例 inPack.java 包示例 LotsOfColors.java 定义一个子接口 matching.java 重载解析示例 notInPack.java 用前缀引用包中的类 onlyShow...

    Java Todo List Manager-开源

    【Java Todo List Manager - 开源应用详解】 Java Todo List Manager 是一个使用Java技术构建的开源Web应用程序,专门设计用于管理个人或团队的待办事项。它允许用户创建、编辑和跟踪任务,同时还支持任务列表的...

    Android代码-todo.txt-android

    Purchase Todo.txt on Google Play, the Amazon Appstore, or download and compile the source code. This app is in active development and there are several known bugs and todo items. Using Todo.txt for ...

    Todo-app:用Java开发的每个人的应用

    【标题】"Todo-app:用Java开发的每个人的应用"揭示了这个项目是一个使用Java编程语言构建的任务管理应用程序。这类应用通常允许用户创建、编辑、跟踪和管理待办事项,是提高个人生产力和组织效率的工具。 【描述】...

    todo:java-toDoList-project

    【标题】"java-toDoList-project" 是一个基于Java编程语言开发的待办事项列表(To-Do List)项目。这个项目旨在实现一个简单的任务管理工具,帮助用户组织和跟踪日常任务,提升工作效率。 【描述】"去做 java-...

Global site tag (gtag.js) - Google Analytics