Play Framework 第一个应用
熟悉的Hello World
新创建一个工程,了解下重要文件的结构
.\app
controllers\models\views
目前比较流行的MVC架构
.\conf
application.conf 工程配置,包括数据库连接等
routes 路由配置,用于解析URL
找到.\app\views\application\index.html
修改页面内容,添加一个输入框和一个按钮
#{extends 'main.html' /}
#{set title:'Home' /}
<form action="@{Application.sayHello()}" method="Get">
<input type="text" name="myName" />
<input type="submit" value="Say Hello" />
</form>
#{extends 'main.html' /} 表示页面继承自 main.html
#{set title:'Home' /} 设置页面标题
运行程序,进入页面 localhost:9000, 会提示错误,No route able to invoke action Application.sayHello was found
在Application.java中添加sayHello方法
public static void sayHello(String myName) {
render(myName);
}
添加sayHello页面,在.\app\views\application 下添加sayHello.html
#{extends 'main.html' /}
#{set title:'Home' /}
<h1>Hello ${myName?: 'guest'}!</h1>
<a href="@{Application.index()}">Back to form</a>
运行效果如下:

对URL进行优化 http://localhost:9000/application/sayhello?myName=Alex
配置路由 .\conf\routes
在 * /{controller}/{action} {controller}.{action} 后添加:
GET /hello Application.sayHello
可以使用新的URL访问页面 http://localhost:9000/hello?myName=Alex
自定义Layout
Layout是所有页面的公共部分,修改.\app\views\main.html
<body>
Hello World APP
<hr /> #{doLayout /}
</body>
#{doLayout /} 会替换sayHello.html中的内容
添加验证
修改sayHello方法
import play.data.validation.Required;
public static void sayHello(@Required String myName) {
if(validation.hasErrors())
{
flash.error("Oops, please enter your name!");
index();
}
render(myName);
}
修改index.html,添加以下代码
#{if flash.error}
<p style="color:#c00">
${flash.error}
</p>
#{/if}
。。
Play Framework 第一个应用的更多相关文章
- Django REST framework 第一章 Serialization
此章节将会介绍多种构成REST framework的重要模块,在每个部分如何一起配合上提供一个综合的全方面的了解. 准备 同样的创建一个新项目,创建一个新的app,将rest_framework跟新建 ...
- spring framework 第一章数据库管理(data access)
spring data access 的网址:https://docs.spring.io/spring/docs/current/spring-framework-reference/index.h ...
- Entity Framework 第一篇
这段时间研究了orm框架EF 写一写研究的历程和心得 先贴上核心代码 public interface ITransaction { bool IsTransaction { get;} void B ...
- iOS开发——创建你自己的Framework
如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件.然而,这种方法并不是很优雅.它会暴露所有的实现细节,而这些实现你可能并不想开源出来.此外,开发者也可能并不想看到你的所有代码,因为他们可 ...
- Code First :使用Entity. Framework编程(8) ----转发 收藏
第8章 Code First将走向哪里? So far, this book has covered all of the Code First components that reached the ...
- .NET Framework各版本比较
(1)本文比较了.NET Framework多个版本之间的区别,方便各位选择和切换.NET Framework. 版本号 发布日期 Visual Studio的版本 Windows上的默认情况 CLR ...
- iOS静态库及Framework 创建
本文转自cocoachina,尊重作者的汗水. 讲述的非常透彻,有需要的朋友可以阅读实践.转载请注明出处 //=================以下留着备份==================// 在 ...
- Xcode——创建你自己的Framework
(注:以下内容是基于Xcode7.2.1操作的,版本不一,可能界面内容不同!) 如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件.然而,这种方法并不是很优雅.它会暴露所有的实现细节,而这 ...
- zend framework框架学习走起——从零开始,点击记录-安装
zend framework第一步,先来安装下zend framework框架. 先介绍下,我这边的php配置环境,为图省事,我是安装wampserver来搭载php环境的,,php+Apache+m ...
随机推荐
- C#进行Visio二次开发之文件导出及另存Web页面
在我前面很多关于Visio的开发过程中,介绍了各种Visio的C#开发应用场景,包括对Visio的文档.模具文档.形状.属性数据.各种事件等相关的基础处理,以及Visio本身的整体项目应用,虽然时间过 ...
- java实现的排序(插入/希尔/归并)
java实现三种简单的排序,以下是代码: /*插入排序*/ public static void insertionSort(int[] a) { int j; for(int p = 1; p &l ...
- VS2015如何新建MVC空模版项目
直接看图吧:
- JavaBean 的小知识点
/** * @author http://roucheng.cnblogs.com * @version 2016-05-08 */ public class Person { private Str ...
- [教程]MongoDB 从入门到进阶 (User系统)
自从MongoDB升级到2.4之后,User系统,或者说是权限系统有了翻天覆地的变化. 在MongoDB2.4之前的User系统,除了用户名和密码之外,只有一个ReadOnly属性. 如果一个用户在a ...
- handlebars模板替换
<html> <head> <meta charset="UTF-8" /> <!-- <script type="tex ...
- 说说web 2.0生态圈的那些事
先来说一道面试题吧,“说一下,web 2.0 和web 1.0的区别?” 官方的解释是这样的: Web1.0 的主要特点在于用户通过浏览器获取信息,Web2.0 则更注重用户的交互作用,用户既是网站内 ...
- php中opendir函数用法实例
这篇文章主要介绍了php中opendir函数用法,以实例形式详细讲述了opendir函数打开目录的用法及相关的注意事项,具有一定的参考借鉴价值,需要的朋友可以参考下 本文实例分析了php中opendi ...
- [javascript] 对象拷贝
Object.prototype.clone = function() { var copy = (this instanceof Array) ? [] : {}; for (attr in thi ...
- VirtualBox-Linux系统安装增强功能
我们在安装之前,必须得先安装好它所需要的依赖包,不然安装过程必定会出现错误! 一.安装依赖包 #yum install kernel-headers #yum install kernel-devel ...