play教程 第三课:初识play运行机制
2017-02-10 14:00
253 查看
你叫什么名字,今年多大?
-MVCplay架构风格是严格按照MVC架构的,分别对应app目录下面的三个文件夹——models、views、controllers,由此形成了play独特的包结构。play的包结构是颠覆我们之前用过的那些框架的,比如springMVC、struts等。
实体类全部在models文件夹中定义,包括对数据库的操作方法也都写在实体类中(后文具体讲解);业务逻辑统统在controllers层定义;html文件即展示层都在views包中定义。
图4-1
-创建Controller
在controller包下新建一个类,取名Sayhello,并让其继承Controller类,在此类中写两个方法,先不要问为什么,一字不漏、不差地写这样两个个方法。
public static void index() { render(); } public static void age(String name,String age){ render(name ,age ); }1
2
3
4
5
6
7
1
2
3
4
5
6
7
-创建views层展示文件
在views包下,创建一个文件夹名称叫Sayhello,注意必须要和controllers下刚才创建的那个类完全一样的名字,在这个文件夹下新建两个html页面,名字叫index.html和age.html,注意必须和Sayhello类中的那个方法名完全一样的名字。
在index.html中写一个form表单,用来提交姓名和年龄。
你叫什么名字?今年多大? <form action= "@{Sayhello.age()}" method ="post"> 姓名:<input type ="text" name="name"/> 年龄:<input type ="text" name="age"/> <input type= "submit" name ="hello" value="提交"/> </form>1
2
3
4
5
6
7
1
2
3
4
5
6
7
在age.html中写这样一句
<h1> Hello,my name is ${name?:'guest'} and I'm ${age} years old.</h1>1
1
-运行项目
在浏览器地址栏中输入localhost:9000/Sayhello/index,填写姓名和年龄,点击提交,页面跳转至age.html并显示刚才输入的姓名、年龄。
-play的运行机制
首先从play的包结构说起,列举几个我们经常用到的包——models、views、controllers、public、conf。上面已经提到了models、views、controllers三个包存放的内容;public用于存放html文件中用到的images、css、javascripts等;conf目录内是常用的配置文件,如常用的application.conf、routes等。
上面有两个地方都强调一定要“完全一样的名字”,为什么呢?这就是play的运行机制。由图4-1可见,浏览器端的请求经controller层处理后最终要render(英文义为“递交、给予”)给view层的html文件来展示处理结果。那么问题来了,controller层的类里面并没有指定跳转到哪个页面(传统框架通常通过配置文件指定跳转路径),它是怎样知道我想要用哪个html文件来呈现内容呢?play的办法是在views目录下建一个和controllers类名完全一样的文件夹,在这个文件夹中新建html网页,名字要和controllers类里的方法名完全一样,这样,通过该方法render之后,就会自动跳转到对应的同名html。
那么参数是如何传递的呢?input中的name名字对应方法的参数名,play可根据参数名直接取值;向页面传值时,只需在render()方法中加参,页面中通过标记语言${}取值。
图4-2
相关文章推荐
- play教程 第三课:初识play运行机制
- JavaScript教程:浅析JS运行机制
- Java进阶教程之运行时类型识别RTTI机制
- 分形艺术网发布:分形软件Apophysis视频教程第七讲——Apophysis的运行原理初识
- Yii Framework2.0开发教程(9)运行机制概述
- Maven 教程(13)— Maven插件解析运行机制
- unity3d教程运行物理机制
- 1_Windows程序运行机制_孙鑫老师VC++教程学习
- 初识JVM-JVM运行机制(2)
- [原]跟我学silverlight系列教程[1]—wpf/silverlight体系架构和运行机制
- 第三课解密SparkStreaming运行机制和架构进阶
- ASP.NET Framework的运行机制和架构
- 孙鑫VC++讲座笔记-(1)Windows程序内部运行机制
- Windows运行机理——线程的机制(4)
- 孙鑫VC++讲座笔记-(1)Windows程序内部运行机制
- 转载:ASP.NET运行机制 和 图片盗链问题
- spring中DispatcherServlet的运行机制
- 孙鑫VC++讲座笔记-(1)Windows程序内部运行机制
- 二、设置开发、运行环境 (基础教程2)
- JSP运行环境的搭建和JDBC数据库连接初级教程- -