playframework1.2.x博客教程(一)-创建项目
来源:互联网 发布:音乐下载软件推荐 编辑:程序博客网 时间:2024/06/04 00:50
本博文将介绍如何使用playframework 创建一个真实的Web 应用程序,通过这个Demo 介绍Play应用开发中的最佳实践。
1. 下载安装 playframework ,配置环境变量
playframework1.2.7 要求JDK5及以上版本,推荐使用JDK7,推荐中UniX系系统下使用命令行进行开发。
2. 创建项目
play new app_1
转换成intellij idea项目,进入目录,play idealize
在ide中导入项目文件,app_1.ipr
在命令行中测试项目,play run ,默认绑定9000端口
3. 目录介绍
apps/ 包含应用的核心部份,用models,controllers,views三个目录组织不同功能的JAVA文件,这是java的源文件目录,手工创建时,需要将此目录作为源文件目录。
conf/ 包含应用所有的配置文件,特别要注意的是,主要配置文件application.conf ,路由配置文件routes 和消息配置文件messages,此文件一般用于国际化
lib/ 主要存放依赖jar 包
public/ 包含所有的公共静态资源,比如 js,css,image等
test/ 包含整个应用所有的用例测试,支持Junit测试和Selenium测试
- play使用UTF-8作为唯一的编码,所以所有文本文件都要使用UTF-8进行编码,在Unix系统不存在此类问题,但在window中需要注意
4. class文件放在哪里
如果你是一个经验丰富的Java程序员,你会很想知道.class文件的编译和加载时机,但是Play官方的答案是:Play没有使用类文件,而是直接读取Java文件源代码。
这样做在开发过程中有两个明显的好处,一个是Play会在运行时监测到Java源文件的改动和自动重新加载他们;第二个是当出现一个Java异常时,Play可以显示更好的报告,甚至是出错的行数和代码。
- 实际上,Play为了保证效率,会在应用的tmp/目录下缓存编译后的字节码文件,如果有需要,可以使用paly clean命令清理缓存。
5. 运行程序
使用play run 命令可以启动刚创建的程序。默认的端口是9000
看到此页即为启动成功。
- 为什么会显示这个页面?因为我们程序中 conf/routs文件配置了路由。
GET / Application.index
这行配置很明了地实现了,当服务器收到路径为/
的GET请求时,它会调用Application.index方法,这是controllers.Application.index的简写,因为处理请求的controllers包是默认的。
当你想创建独立的Java应用程序,可以使用单一入口的Main方法 。Play 服务器程序的入口是是一个URL,对应一个action
方法,这些action
方法被定义在指定的类里面,这些类被称为控制器controllers
上面例子的controller
的源代码是这样的:
package controllers;
import play.mvc.*;
public class Application extends Controller {
public static void index() { render();}
}
- controller 需要继承自
play.mvc.Controller
类,这个类提供很多有用的方法,比如这个例子中使用的render()
方法,使用一个模板成成HTTP响应。
模板templates
是在/app/views 目录下一个简单的文本文件,不指定特定的模板名,Application/index.html
作为默认模板被使用。
app_1/app/views/Aplication/index.html
:
#{extends 'main.html'/}#{set title :'home'/}#{welcome/}
这个模板内容看起来内容很少,实际上你看到的都是Play的标签,Play标签类似于JSP的tags。这里使用的#{welcome/}
Tag去生成你在浏览器里看到的welcome信息。
#{extends /}
tag告诉Play此模板继承自另一个名为main.html
的模板,模板的继承是允许你通过重用公共部份创建一个复杂Web页面的一个强大的概念。
打开/app_1/app/views/main.html`模板:
<!DOCTYPE html><html> <head> <title>#{get 'title' /}</title> <meta charset="${_response_encoding}"/> <link rel="stylesheet" media="screen" href="@{'/public/stylesheets/main.css'}"> #{get 'moreStyles' /> <link rel = 'shortcut icon' type="image/png" href="@{'/public/images/favicon.png'}"> <script type="text/javascripts" charset="${_response_encoding}" src="@{'/public/javascrrpts/jquery.min.js}"></script> #{get 'moreScripts'/} </head> <body> #{doLayout /} </body></html>
- 上面的
#{doLayout/}
标签将会被Application/index.html
替代
- playframework1.2.x博客教程(一)-创建项目
- playframework1.2.x博客教程(二) 使用数据库和git
- playframework1.2.x博客教程(五)-文章评论
- playframework1.2.x 入门(三)编写Model类
- playframework1.2.x 入门(四) 编写第一个页面
- IntelliJ IDEA 配置playframework1 项目和创建类似eclipse的工作区
- Cocos2d-x 3.x 系列教程02-创建自定义项目
- (一)创建新的cocos2d-x项目
- XAF应用开发教程(一) 创建项目
- cocos2d-x-2.x 命令创建项目
- cocos2d-x3.0/2.0 win7第一次创建项目需要调用到的脚本(不断更新维护)//cocos2d-x 教程一
- CocoStudio教程二:基于Cocos2D-X创建跨平台项目
- Cocos2d-x 3.0开发小记(一)(创建项目)
- Cocos2d-x-3.6学习(一)----创建项目
- Angular4.x开发环境及项目创建(一)
- ideal创建Struts 2.x项目
- cocos2d-x 项目创建
- cocos2d-x 创建项目
- 使用MyBatis-Generator自动创建代码(参考+修改)
- 实验八:VLAN的配置和单臂路由
- Visual Studio 2012 - Visual C++ MFC 类
- linux查看网卡速度和模式调整
- Oracle基本的SQL语句
- playframework1.2.x博客教程(一)-创建项目
- SDUT2140图结构练习——判断给定图是否存在合法拓扑序列
- 程序人生之一:一个四年 JAVA 程序员的工作经历
- iOS 蓝牙打印
- 关于分组选择符
- 审核对应的业务逻辑处理
- 反转一个链表
- POJ Problem 1383 Labyrinth【树的直径】
- UEditor工具栏上自定义按钮、图标、事件、窗口页面