javaTemplates-学习笔记三
Routes入口
后台语言的应用入口都是从routes开始的,想要新建一个页面得学会配置routes. conf/routes 文件定义了全部应用URL的动作(Action),如果当浏览器请求访问http://localhost:9000/,应用将会返回一个页面,此时 routes 初始格式如下
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~ # Home page
GET / controllers.Application.index
字面意思就是首页了[默认的首页是 view 下的index.scala.html].
此定义告知play接收到HTTP GET/POST类型请求且路径为[/]时调用 controllers 包含Application类的index方法,对应的代码如下:
package controllers import play.api._
import play.api.mvc._ object Application extends Controller { def index = Action {
Ok(views.html.index("Your new application is ready."))
} }
如果想要指定是哪个文件可以修改routes:
# Home page
GET /index.html controllers.Application.index
这个时候访问的地址就需要加上文件名了[http://localhost:9000/index.html].
理解Routes和 Controller
上面的 routes 定义 / 和 /index.html 对应了 Application.scala 代码块中的 index 方法来显示网页内容:
//所有的控制台代码按play规范均归入controllers包
package controllers //导入play应用开发所需要的类库
import play.api._
import play.api.mvc._ //Application全局对象实例化,因此使用Object来声明Application并继承play的Controller类
object Application extends Controller { //定义index方法,任何toutes文件中指定调用的方法,必须放回Action对象来处理HTTP请求
def index = Action {
//任何ACtion对象必须获得反返回的Result对象
//OK继承于Result对象,所以返回OK表示其包含的内容为HTTP 200 OK的状态
//在Scala最后一行代码等同于 return OK(views.html.index("Your new application is ready."))
Ok(views.html.index("Your new application is ready."))
} }
def 这个声明好像Rython,Ruby中的代码块声明.
OK表示HTTP请求成功状态,可以修改内容try一下:
Ok(views.html.index("Hello World!"))
模板页面中的头部变成了 Hello World! .
View新建文件
了解了 routes Application Controller 之间的关系就可以自己创建文件了.
GET /show.html controllers.Application.show
def show = Action {
Ok(views.html.index("Hello World!"))
}
在 view 中新建文件show.scala.html copy index.scala.html中的代码块运行之...然后可以http://localhost:9000/show.html访问.
javaTemplates-学习笔记三的更多相关文章
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- [Firefly引擎][学习笔记三][已完结]所需模块封装
原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读: 笔记三主要就是各个模块的封装了,这里贴 ...
- JSP学习笔记(三):简单的Tomcat Web服务器
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- java之jvm学习笔记三(Class文件检验器)
java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...
- VSTO学习笔记(三) 开发Office 2010 64位COM加载项
原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...
- Java IO学习笔记三
Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...
- NumPy学习笔记 三 股票价格
NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...
- Learning ROS for Robotics Programming Second Edition学习笔记(三) 补充 hector_slam
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- Learning ROS for Robotics Programming Second Edition学习笔记(三) indigo rplidar rviz slam
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- Typescript 学习笔记三:函数
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
随机推荐
- JavaScript定时机制setTimeout与setInterval研究
JavaScript的setTimeout与setInterval是两个很容易欺骗别人感情的方法,因为我们开始常常以为调用了就会按既定的方式执行, 我想不少人都深有同感, 例如 setTimeout( ...
- Android EditText小结
防止EditText获取焦点弹出输入法 android:focusable="true" android:focusableInTouchMode="true" ...
- Android布局(一)layout_gravity 属性和 gravity属性的区别
安卓中的 layout_gravity 属性和 gravity属性 有啥区别? LinearLayout有两个非常相似的属性: android:gravity与android:layout_gravi ...
- for练习--凑法
static void Main14购物卡(string[] args) { //小明单位发了50元的购物卡,他到超市买洗化用品,一是牙刷(5元),二是香皂(2元),三是牙膏(10元)怎么可以正好把五 ...
- 自定义不等高的cell-(纯代码)frame
给模型增加frame数据 所有子控件的frame cell的高度 @interface XMGStatus : NSObject /**** 文字\图片数据 ****/ // ..... /**** ...
- Search in Sorted Array,Search in Rotated Sorted Array,Search in Rotated Sorted ArrayII
一:Search in Sorted Array 二分查找,可有重复元素,返回target所在的位置,只需返回其中一个位置,代码中的查找范围为[low,high),左闭右开,否则容易照成死循环. 代码 ...
- Python基础:绑定和方法调用
首先,方法仅仅是类内部定义的函数,也就是说,方法是类属性而不是实例属性. 其次方法有两种被调用的方式:调用绑定的方法和调用未绑定的方法. 当存在一个实例时,方法才被认为绑定到了那个实例上,没有实例时方 ...
- Qt中OpenGL的初步使用
结果预览: 一.代码5个文件 //glwidget.h #ifndef GLWIDGET_H #define GLWIDGET_H #include <QGLWidget> class G ...
- Spring学习之切入点表达式
链接地址:http://jinnianshilongnian.iteye.com/blog/1415606
- HTML5新属性
1.contenteditable 属性指定元素内容是否可编辑. 注意: 当元素中没有设置 contenteditable 属性时,元素将从父元素继承. 所有主流浏览器都支持 contentedita ...