博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javaTemplates-学习笔记四
阅读量:4652 次
发布时间:2019-06-09

本文共 1827 字,大约阅读时间需要 6 分钟。

应用的调用顺序理解

这个地方很薄弱,浏览器 http://localhost:9000/index.html  ->  conf/routes  ->  app/controllers/Application.scala  ->  def index = Action  ->  {Ok(views.html.index("Hello World!"))} -> 返回正文的内容纯文本或者HTML格式.

这一块应该也是这么理解的,语言大多都差不多的构造.(好像是这样的)

理解view层

自己研究了一下才发现默认文件下的 index.scala.html 是内容显示页面 main.scala.html 是layouts.既然不懂那就查资料

play模板在HTML基础上直接基于Scala语言,模板文件通常放在 view目录下 ,文件以".scala.html"双扩展名.每个模板文件都是一个Scala代码,都需要通过Scala编译器检查类型和语法,并编译成.class可执行的JVM二进制文件.

编译时Play首相会将.scala.html的Play模板文件自动生成为.scala的源代码文件,如 /app/views/index.scala.html的模板文件将会生成/target/scala-2.9.1/src_managed/main/views/html/index.template.scala文件,该文件将会继而被Scala编译器编译成index.class。

解析 index.scala.html 文件:

@(message: String)@*模板入参,类型为String类型,命名为message*@@*调用main.scala.html模板,传入参数message*@@main("Welcome to Play") {    @*这里调用了play中自带的一个欢迎模板插入message*@    @play20.welcome(message)}

在play模板中@符号代表后面的代码为Scala代码块,因为.scala.html文件最终要编译成Scala. index.scala.html 中的代码块把模板文件当成了一个对象,传入的参数都声明了类型.Java数据类型得看一下了.

这里的注释代码解释一下写法为:

@*我是注释*@

既然以@为Scala代码起始,那么 @**@ 为注释很好记.

结合上面的 index.scala.html 来看 Application.scala 中的 Action 

def index = Action {    Ok(views.html.index("Hello World!"))  }

index里面接收的是一个参数,试试接收多个参数 index.scala   Application.scala    main.scala.html 三者之间该怎么写:

首先 Application.scala 中定义第二个参数

def index = Action {    Ok(views.html.index("Your new application is ready.","我在哪里"))  }

 接着在 index.scala.html 定义参数

@(message: String,exmple: String)@*这里声明的格式与Application中的格式一致*@@*此处main中接收的格式也是2个*@@main(message,exmple) {    @*方法体里面(也不知道这里该用什么专业的名称,暂且叫方法体.)就是HTML页面中显示的内容*@    

学习笔记

凡事不可以}

然后看 main.scala.html 中要如何调用

@(title: String,exmple: String)(content: Html)            @title        
@exmple @content

头部的参数定义正确,参数可以随意显示了.其中 @content 是 index.scala.html 文件中 @main(){...} 方法体里面的HTML代码.

转载于:https://www.cnblogs.com/gzzfans/p/4057412.html

你可能感兴趣的文章
Python -- pandas
查看>>
jQuery 效果 - 淡入淡出
查看>>
目标文件格式
查看>>
瑞士 -- 德语 德国 -- 德语 卢森堡 -- 德语 奥地利 -- 德语 丹麦 -- 丹麦语 挪威 -- 挪威语 爱尔兰 -- 爱尔兰语 荷兰 -- 荷兰语 比利时 -- 荷兰语...
查看>>
背景颜色设置
查看>>
推荐一款帮助负载均衡/DNS轮询服务器组使用的文件同步工具
查看>>
常用的CSS命名规则
查看>>
约数个数定理&约数和定理
查看>>
Oracle EBS数据定义移植工具:FNDLOAD
查看>>
判素数
查看>>
extjs4.1:两个combobox的联动
查看>>
百度地图瓦片工具:定义坐标
查看>>
jmeter控制器--交替控制器
查看>>
关于红包逻辑小计
查看>>
AGC037
查看>>
LOJ6031 「雅礼集训 2017 Day1」字符串 SAM、根号分治
查看>>
LOJ2874 JOISC2014 历史研究 分块、莫队
查看>>
Codeforces Round #584 (Div. 1 + Div. 2)
查看>>
LOJ6504 「雅礼集训 2018 Day5」Convex 凸包、莫队
查看>>
AGC038
查看>>