Play Framework 第一个应用

时间:2022-03-23 23:13:27

熟悉的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>

运行效果如下:

Play Framework 第一个应用

对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 第一个应用的更多相关文章

  1. Django REST framework 第一章 Serialization

    此章节将会介绍多种构成REST framework的重要模块,在每个部分如何一起配合上提供一个综合的全方面的了解. 准备 同样的创建一个新项目,创建一个新的app,将rest_framework跟新建 ...

  2. spring framework 第一章数据库管理(data access)

    spring data access 的网址:https://docs.spring.io/spring/docs/current/spring-framework-reference/index.h ...

  3. Entity Framework 第一篇

    这段时间研究了orm框架EF 写一写研究的历程和心得 先贴上核心代码 public interface ITransaction { bool IsTransaction { get;} void B ...

  4. iOS开发——创建你自己的Framework

    如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件.然而,这种方法并不是很优雅.它会暴露所有的实现细节,而这些实现你可能并不想开源出来.此外,开发者也可能并不想看到你的所有代码,因为他们可 ...

  5. Code First :使用Entity&period; Framework编程&lpar;8&rpar; ----转发 收藏

    第8章 Code First将走向哪里? So far, this book has covered all of the Code First components that reached the ...

  6. &period;NET Framework各版本比较

    (1)本文比较了.NET Framework多个版本之间的区别,方便各位选择和切换.NET Framework. 版本号 发布日期 Visual Studio的版本 Windows上的默认情况 CLR ...

  7. iOS静态库及Framework 创建

    本文转自cocoachina,尊重作者的汗水. 讲述的非常透彻,有需要的朋友可以阅读实践.转载请注明出处 //=================以下留着备份==================// 在 ...

  8. Xcode——创建你自己的Framework

    (注:以下内容是基于Xcode7.2.1操作的,版本不一,可能界面内容不同!) 如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件.然而,这种方法并不是很优雅.它会暴露所有的实现细节,而这 ...

  9. zend framework框架学习走起——从零开始,点击记录-安装

    zend framework第一步,先来安装下zend framework框架. 先介绍下,我这边的php配置环境,为图省事,我是安装wampserver来搭载php环境的,,php+Apache+m ...

随机推荐

  1. 如何让同局域网的同事访问我电脑上的PHP网站和数据库

    需求:想让公司同一局域网的同事电脑访问我的电脑里面的php项目. 条件:首先确认localhost正常访问你的本地项目 环境:我使用的是wampserver2.5集成环境 步骤: 1.增加新增监听端口 ...

  2. (待续)C&num;语言中的动态数组(ArrayList)模拟常用页面置换算法(FIFO、LRU、Optimal)

    目录 00 简介 01 算法概述 02 公用方法与变量解释 03 先进先出置换算法(FIFO) 04 最近最久未使用(LRU)算法 05 最佳置换算法(OPT) 00 简介 页面置换算法主要是记录内存 ...

  3. lottery概率问题

    问题:1~n编号的彩票,要买全,等概率条件下平均要买几张要求写出算法. 回答:已经买了m张时,买中剩下的概率为1-m/n,则要买的张数为1/(1-m/n)n=2,s=1+1/(1-1/2);n=3,s ...

  4. bestcoder Round &num;7 前三题题解

    BestCoder Round #7 Start Time : 2014-08-31 19:00:00    End Time : 2014-08-31 21:00:00Contest Type : ...

  5. php const define 区别有那些呢?

    (1) 编译器处理方式不同 define宏是在预处理阶段展开. const常量是编译运行阶段使用. (2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开. const常量有 ...

  6. C&num;抓包

    抓包過程中發現頁面<input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" v ...

  7. BZOJ1595 &lbrack;Usaco2008 Jan&rsqb;人工湖

    直接模拟...从最低的开始向两边拓展= = /************************************************************** Problem: 1595 ...

  8. Android中修改状态栏的颜色和我们App的风格一致

    其实也没什么东西,就是一个主题,下面看代码: <resources> <!-- Base application theme. --> <style name=&quot ...

  9. Oracle 摘去数据块的面纱

    Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F 00018000h 6 A2 0 0 0c 0 80 3 8b 61 15 0 0 0 3 4 type frmt spa ...

  10. python 操作 mysql基础补充

    前言 本篇的主要内容为整理mysql的基础内容,分享的同时方便日后查阅,同时结合python的学习整理python操作mysql的方法以及python的ORM. 一.数据库初探 在开始mysql之前先 ...