`
REALGODO
  • 浏览: 176663 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

第一个Playframework程序

阅读更多

 

第一个程序会首先会介绍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 - 创建你的第一个应用程序》 Play Framework 2.0 是一个开源的Web应用框架,它基于Scala和Java语言,遵循“模式-动作”(Action)架构,提供了一种轻量级、敏捷开发的方式。本篇文章将引导你...

    Play Framework应用程序框架 v2.7.9.zip

    而"playframework-2.7.9"可能是一个解压后的目录,其中包含了框架的全部源代码、库文件、示例项目、构建脚本等。 Play Framework的核心特性包括: 1. **异步编程模型**:Play Framework利用Akka Actor系统实现非...

    playframework中文教程.zip

    在“playframework中文教程”中,你可能将会学到如何安装和配置Play Framework,创建第一个项目,理解路由文件,处理HTTP请求和响应,使用控制器和视图,以及数据库操作。此外,还可能涉及如何进行测试,使用模板...

    playframework 框架学习之路 1

    在“Playframework框架学习之路 1”中,我们可能要探讨这个框架的基础概念、安装过程以及如何创建一个简单的应用。下面将详细介绍Play Framework的关键知识点。 1. **快速开发**: Play Framework以其快速开发能力而...

    Play Framework2本教程

    Play Framework2是一个强大的Java和Scala应用开发框架,它以其简洁的API、快速的开发周期以及对Web标准的紧密集成而闻名。本教程旨在为初学者和有经验的开发者提供全面的指导,帮助他们掌握Play Framework2的核心...

    Play Framework应用程序框架 v2.9.1.zip

    从`说明.htm`中,开发者可以获取关于如何安装、配置和使用Play Framework v2.9.1的详细指导,包括设置开发环境、创建第一个应用、调试和部署等步骤。 总的来说,Play Framework v2.9.1是开发者构建现代、高性能Web...

    Play framework 2.0入门教程(三)的源代码,Play留言板

    这个入门教程的第三部分是关于如何使用Play Framework构建一个简单的留言板应用。在这里,我们将深入探讨Play Framework的核心概念和关键组件,以及如何通过源代码实现这个留言板功能。 首先,Play Framework采用...

    play framework测试项目

    描述中提到的"play 1.X"指的是Play Framework的第一个主要版本系列。这个版本在当时引入了许多创新特性,比如使用Ebean作为默认的ORM(对象关系映射)工具,以及对Scala和Java的全面支持。在1.X版本中,开发人员可以...

    Play Framework Cookbook.pdf

    - **模块**:Play Framework 支持模块化的应用程序开发,每个模块可以独立开发、测试并部署。 - **插件**:通过扩展插件系统,可以轻松集成第三方服务和工具,如数据库访问、身份验证等。 2. **RESTful API 设计*...

    Play Framework Cookbook(PlayFramework )(September 4, 2011)

    - **知识点概述**:Play Framework 提供了一种简单的方法来集成外部API,即使在外部服务不可用的情况下也能确保应用正常运行。 - **应用场景**:适用于需要与第三方服务交互的应用程序,例如支付网关、社交媒体平台...

    Play Framework Cookbook Second Edition

    1. **模型-视图-控制器(MVC)架构**:Play Framework 遵循 MVC 设计模式,将应用程序分为模型、视图和控制器三个部分。这种结构有助于保持代码的清晰度和可维护性。 - **模型**:负责存储和管理数据。 - **视图**...

    play framework 框架手册 word 版

    《Play Framework 框架手册》是一份深入介绍Play框架的文档,主要涵盖了从基础概念到高级特性的全面内容,适合初学者和经验丰富的开发者参考。以下是对手册中部分核心知识点的详细阐述: 1. **MVC应用程序模型**:...

    Play Framework应用程序框架 v2.8.7-源码.zip

    Play Framework是一款基于Java和Scala的开源Web应用框架,它遵循模型-视图-控制器(MVC)架构模式,旨在提供简洁、高效的开发体验。在版本v2.8.7中,该框架继续优化了性能,增强了开发者的生产力,并且保持了与最新...

    Playframework cookbook

    ### Playframework Cookbook 知识点解析 #### 一、Play Framework 概览 - **框架定位**:Play Framework 是一个轻量级、高效的 Java 和 Scala Web 开发框架,旨在简化 Web 应用程序的开发过程。 - **核心特性**: ...

    play framework框架教程

    #### 九、Playframework的问题 尽管Play框架有许多优点,但也存在一些挑战,比如学习曲线、社区支持等方面的问题。这些问题可能会影响开发者的选择。 #### 十、Play Framework平台的性能比较 与其他Web框架相比,...

    Play Framework Cookbook

    《Play Framework Cookbook》是一本关于Play Framework的应用指南,提供了60多个实用的食谱帮助读者深入理解Play Framework的高级概念。Play Framework是一个为敏捷开发设计的框架,它允许开发者快速构建高性能的Web...

    Play_Framework(手册、配置文档、标签等)

    Play Framework 是一个开源的Web应用框架,用于构建高效、可测试和模块化的Java及Scala应用程序。这个框架以其简洁的API和MVC(Model-View-Controller)架构设计著称,深受开发者的喜爱。以下是关于Play Framework的...

    play framework db

    Play Framework 是一个流行的、基于Java和Scala的开源Web应用框架,它提供了简洁、高效的方式来构建现代Web应用程序。在Play Framework中,数据库操作是通过集成Java Persistence API (JPA) 实现的,这使得开发者...

    Playframework 1.2.7 sdk zip包 play1.2.7.zip

    Playframework 1.2.7 是一个开源的Java和Scala Web应用框架,它采用模型-视图-控制器(MVC)架构模式,并且是基于事件驱动的,这使得开发过程更加高效和简洁。这个zip包"play1.2.7.zip"包含了Playframework的SDK,...

    mastering play framework for scala

    这部分还会讲解如何创建第一个“Hello, World!”应用,让读者快速上手。 2. **路由与控制器**:详细解析Play的路由系统,它是将URL映射到特定控制器的方法的关键。控制器是处理HTTP请求的主体,学习如何定义和编写...

Global site tag (gtag.js) - Google Analytics