您的位置:首页 > 其它

Play Framework 第一个应用

2015-10-27 16:06 471 查看
熟悉的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}


。。

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: