第一个程序会首先会介绍playframework的控制器与视图的关联,URL的重写,然后引入数据库的关联,引入单元测试。
创建表单
启动服务~$ play run playmusic,在app/views/Application/index.html中替换成如下代码
#{extends 'main.html' /}
<form action="@{Application.sayHello()}" method="GET">
<input type="text" name="myName" />
<input type="submit" value="Say hello!" />
</form>
以上代码就是增加一个form,get方式响应到Application控制器的sayHello方法,#{extends 'main.html' /}是一个模板语言的语法,暂且不需要关注。
浏览器输入http://localhost:9000/,如下提示
出现错误的原因是你试图关联一个不存在控制器的方法,下面我创建这个方法。将app/controllers/Application.java替换为
package controllers;
import play.mvc.*;
public class Application extends Controller {
public static void index() {
render();
}
public static void sayHello(String myName) {
render(myName);
}
}
我们在方法签名行加入了myName的参数,就成为了HTTP请求中的可捕获的参数,不需要setter getter。
刷新页面,页面已经正常显示了。是的,无需惊讶修改了java代码后立刻就能生效,留给发呆的时间越来越少了。
点击sayHello按钮,新的错误出现了。
错误信息还是比较清晰的,找不到sayHello.html控制器与页面的默认映射也是清晰可见了,我们立刻创建一个app/views/Application/sayHello.html
#{extends 'main.html' /}
#{set title:'Home' /}
<h1>Hello ${myName ?: 'guest'}!</h1>
<a href="@{Application.index()}">Back to form</a>
刷新页面
一个网页结构就出来了。顺便提一句,这个模板语言叫做Groovy,更高级的应用需要查询文档,在play里主要充当模板引擎,(和freemark差不多啊)。
重写刚才的URL
刚才的URLhttp://localhost:9000/application/sayhello?myName=gordon,实在不够友好,
编辑app/conf/routes文件为
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~
# Home page
GET / Application.index
GET /hello/{myName}.html Application.sayHello
# Map static resources from the /app/public folder to the /public path
GET /public/ staticDir:public
# Catch all
* /{controller}/{action}.html {controller}.{action}
新增了GET /hello/{myName}.html Application.sayHello 这一行,意思就是将Application控制器的sayHello方法映射成/hello/参数myName加html后缀
URL重写就告一段落
单元测试
停止服务~$ play stop playmusic
以测试方式启动服务 ~$ play test playmusic
在浏览器http://localhost:9000/@tests
出现如下视图
选择全部开始测试,绿色,全部通过。
play 内置了测试用的内存数据库。细看下app/test目录下的代码
import org.junit.*;
import groovy.ui.text.FindReplaceUtility;
import java.util.*;
import play.test.*;
import models.*;
public class BasicTest extends UnitTest {
@Before
public void setup() {
Fixtures.deleteAll();
}
@Test
public void aVeryImportantThingToTest() {
assertEquals(2, 1 + 1);
}
}
一个恒通过的测试。使用的是Junit4来进行单元测试。其他的默认测试代码就不叙述了。
添加一个实体
在app/models/下增加一个实体类Music
package models;
import java.util.Date;
import javax.persistence.Entity;
import play.db.jpa.Model;
@Entity
public class Music extends Model {
public String name;
public Date publishDate;
public Music(String name, Date publishDate) {
super();
this.name = name;
this.publishDate = publishDate;
}
}
使用jpa注解方式映射数据表,Music继承了play.db.jpa.Model,Model通过继承的方式获得了许多有用的实体操作方法save,merge,delete等许多常用的方法。如果在领域模型里讨论,应该是充血模型吧。
在BasicTest加入测试代码
@Test
public void music_test() {
new Music("play around", new Date()).save();
List<Music> musics = Music.findAll();
Assert.assertNotNull(musics);
Assert.assertTrue(musics.size() != 0);
Assert.assertEquals("play around", musics.get(0).name);
}
插入一条数据,并查询结果集的大小。刷新页面,测试是通过的。
一个基本的MVC就出来了。
第一个play程序就完事了。
- 大小: 25.3 KB
- 大小: 14.1 KB
- 大小: 13.8 KB
- 大小: 21.9 KB
- 大小: 27.4 KB
- 大小: 17.6 KB
分享到:
相关推荐
《Play Framework 2.0 - 创建你的第一个应用程序》 Play Framework 2.0 是一个开源的Web应用框架,它基于Scala和Java语言,遵循“模式-动作”(Action)架构,提供了一种轻量级、敏捷开发的方式。本篇文章将引导你...
而"playframework-2.7.9"可能是一个解压后的目录,其中包含了框架的全部源代码、库文件、示例项目、构建脚本等。 Play Framework的核心特性包括: 1. **异步编程模型**:Play Framework利用Akka Actor系统实现非...
在“playframework中文教程”中,你可能将会学到如何安装和配置Play Framework,创建第一个项目,理解路由文件,处理HTTP请求和响应,使用控制器和视图,以及数据库操作。此外,还可能涉及如何进行测试,使用模板...
在“Playframework框架学习之路 1”中,我们可能要探讨这个框架的基础概念、安装过程以及如何创建一个简单的应用。下面将详细介绍Play Framework的关键知识点。 1. **快速开发**: Play Framework以其快速开发能力而...
Play Framework2是一个强大的Java和Scala应用开发框架,它以其简洁的API、快速的开发周期以及对Web标准的紧密集成而闻名。本教程旨在为初学者和有经验的开发者提供全面的指导,帮助他们掌握Play Framework2的核心...
从`说明.htm`中,开发者可以获取关于如何安装、配置和使用Play Framework v2.9.1的详细指导,包括设置开发环境、创建第一个应用、调试和部署等步骤。 总的来说,Play Framework v2.9.1是开发者构建现代、高性能Web...
这个入门教程的第三部分是关于如何使用Play Framework构建一个简单的留言板应用。在这里,我们将深入探讨Play Framework的核心概念和关键组件,以及如何通过源代码实现这个留言板功能。 首先,Play Framework采用...
描述中提到的"play 1.X"指的是Play Framework的第一个主要版本系列。这个版本在当时引入了许多创新特性,比如使用Ebean作为默认的ORM(对象关系映射)工具,以及对Scala和Java的全面支持。在1.X版本中,开发人员可以...
- **模块**:Play Framework 支持模块化的应用程序开发,每个模块可以独立开发、测试并部署。 - **插件**:通过扩展插件系统,可以轻松集成第三方服务和工具,如数据库访问、身份验证等。 2. **RESTful API 设计*...
- **知识点概述**:Play Framework 提供了一种简单的方法来集成外部API,即使在外部服务不可用的情况下也能确保应用正常运行。 - **应用场景**:适用于需要与第三方服务交互的应用程序,例如支付网关、社交媒体平台...
1. **模型-视图-控制器(MVC)架构**:Play Framework 遵循 MVC 设计模式,将应用程序分为模型、视图和控制器三个部分。这种结构有助于保持代码的清晰度和可维护性。 - **模型**:负责存储和管理数据。 - **视图**...
《Play Framework 框架手册》是一份深入介绍Play框架的文档,主要涵盖了从基础概念到高级特性的全面内容,适合初学者和经验丰富的开发者参考。以下是对手册中部分核心知识点的详细阐述: 1. **MVC应用程序模型**:...
Play Framework是一款基于Java和Scala的开源Web应用框架,它遵循模型-视图-控制器(MVC)架构模式,旨在提供简洁、高效的开发体验。在版本v2.8.7中,该框架继续优化了性能,增强了开发者的生产力,并且保持了与最新...
### Playframework Cookbook 知识点解析 #### 一、Play Framework 概览 - **框架定位**:Play Framework 是一个轻量级、高效的 Java 和 Scala Web 开发框架,旨在简化 Web 应用程序的开发过程。 - **核心特性**: ...
#### 九、Playframework的问题 尽管Play框架有许多优点,但也存在一些挑战,比如学习曲线、社区支持等方面的问题。这些问题可能会影响开发者的选择。 #### 十、Play Framework平台的性能比较 与其他Web框架相比,...
《Play Framework Cookbook》是一本关于Play Framework的应用指南,提供了60多个实用的食谱帮助读者深入理解Play Framework的高级概念。Play Framework是一个为敏捷开发设计的框架,它允许开发者快速构建高性能的Web...
Play Framework 是一个开源的Web应用框架,用于构建高效、可测试和模块化的Java及Scala应用程序。这个框架以其简洁的API和MVC(Model-View-Controller)架构设计著称,深受开发者的喜爱。以下是关于Play Framework的...
Play Framework 是一个流行的、基于Java和Scala的开源Web应用框架,它提供了简洁、高效的方式来构建现代Web应用程序。在Play Framework中,数据库操作是通过集成Java Persistence API (JPA) 实现的,这使得开发者...
Playframework 1.2.7 是一个开源的Java和Scala Web应用框架,它采用模型-视图-控制器(MVC)架构模式,并且是基于事件驱动的,这使得开发过程更加高效和简洁。这个zip包"play1.2.7.zip"包含了Playframework的SDK,...
这部分还会讲解如何创建第一个“Hello, World!”应用,让读者快速上手。 2. **路由与控制器**:详细解析Play的路由系统,它是将URL映射到特定控制器的方法的关键。控制器是处理HTTP请求的主体,学习如何定义和编写...