playframework1.2.x博客教程(一)-创建项目

本博文将介绍如何使用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替代
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值