`
laowang
  • 浏览: 37783 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hellolift学习笔记(1)

阅读更多
最近在学习scala,大致的学习了一下scala语法后,开始学习liftweb,希望通过对liftweb的学习来带动对scala的进一步深入。学习liftweb的过程也同样,大致浏览一下《The Definitive Guide To Lift》后,下载了liftweb的官方例子,通过对例子的学习来进一步消化书中的内容。
按照看的顺序把学习到的东西记录下来,留备以后复习

1.入口
入口还是index.html,不过被LiftFilter所过滤处理,filter的定义依然在web.xml中。
index.html的内容被surround标签包含
<lift:surround with="default" at="content">
...
</lift:surround>

这是lift中Rendering with Templates 的语法,通过这个tag把页面的内容和模板组合在一起。with指定使用的模板名称,模板位于webapp\templates-hidden目录下,在这个目录下可以找到default.html。 at指定了本页内容位于模板中的位置,在模板文件中能找到下面代码
<lift:bind name="content" />

这个代码在渲染过程中会被本页内容所替代。

关于Rendering with Templates 在《The Definitive Guide To Lift》的第三章(P28)有详细说明

2.snippet
在index.html中有以下代码
<p><lift:hello_world.howdy /></p>

这是lift的snippet标签(在《The Definitive Guide To Lift》的第三章(P31)有详细说明),snippet语法可以用多种写法,这里使用的
<lift:Class.method form="..." multipart="..." /> 

所以这里的class是hello_world,method是howdy,那么在哪里查找这个类呢?
在bootstrap\liftweb\Boot.scala这个类中有这样的代码
 // add the com.hellolift package to the list packages
 // searched for Snippets, CometWidgets, etc.
 LiftRules.addToPackages("com.hellolift")

所有的snippets都在这个包的子包中查找,即com.hellolift.snippet,在这里我们可以找到HelloWorld.scala,类名的 camel case 会转化为title case

在HelloWorld.scala可以找到howdy方法的定义
 def howdy = <span>Welcome to HelloLift at {new _root_.java.util.Date}</span>

这里的函数体是一个XML literals(《ProgrammingInScala》Ch26.3 P541)
这个方法的完整定义可以写成
 def howdy (content : NodeSeq) : NodeSeq = <span>Welcome to HelloLift at {new _root_.java.util.Date}</span>


在 XML literal中可以混合scala的代码,用{} 区分
分享到:
评论
7 楼 alanwu 2009-10-15  
引用
感谢二位的关注和关心。

你写得很好,加油
6 楼 alanwu 2009-10-15  
引用
提个醒,转载je中的文章到je以外的地方最好征得文章作者的同意吧!毕竟je是有规矩的哟....


我只是加个链接过去,应该都是没问题的吧。
5 楼 laowang 2009-10-14  
fineqtbull 写道
alanwu 写道

把你的文章放到邮件列表了,http://groups.google.com/group/scalacn

提个醒,转载je中的文章到je以外的地方最好征得文章作者的同意吧!毕竟je是有规矩的哟....

感谢二位的关注和关心。不过没关系,看了大家很多东西,尤其是fineqtbull翻译的文章,得到很多帮助,如果我记录的东西对大家有帮助,我在这儿默认允许随便转载了
4 楼 fineqtbull 2009-10-14  
alanwu 写道

把你的文章放到邮件列表了,http://groups.google.com/group/scalacn

提个醒,转载je中的文章到je以外的地方最好征得文章作者的同意吧!毕竟je是有规矩的哟....
3 楼 alanwu 2009-10-14  
把你的文章放到邮件列表了,http://groups.google.com/group/scalacn
2 楼 alanwu 2009-10-14  
解释得挺清楚
1 楼 lzycxy 2009-10-14  
并没有看出有吸引眼球

相关推荐

    Java学习笔记学习笔记

    Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习...

    ssh学习笔记1 ssh学习笔记1

    ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1

    希沃白板学习笔记.pdf

    希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf

    Springcloud学习笔记.md

    Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Spring...

    云的学习笔记-云的学习笔记系统-云的学习笔记系统源码-云的学习笔记管理系统-基于ssm的云的学习笔记系统-ssm-java代码

    云的学习笔记-云的学习笔记系统-云的学习笔记系统源码-云的学习笔记管理系统-云的学习笔记管理系统java代码-云的学习笔记系统设计与实现-基于ssm的云的学习笔记系统-基于Web的云的学习笔记系统设计与实现-云的学习...

    云的学习笔记-云的学习笔记系统-云的学习笔记系统源码-云的学习笔记管理系统-基于Web的云的学习笔记系统设计与实现-java代码

    云的学习笔记-云的学习笔记系统-云的学习笔记系统源码-云的学习笔记管理系统-云的学习笔记管理系统java代码-云的学习笔记系统设计与实现-基于ssm的云的学习笔记系统-基于Web的云的学习笔记系统设计与实现-云的学习...

    人工智能学习笔记,人工智能学习笔记

    人工智能学习笔记,人工智能学习笔记,人工智能学习笔记人工智能学习笔记,人工智能学习笔记,人工智能学习笔记人工智能学习笔记,人工智能学习笔记,人工智能学习笔记人工智能学习笔记,人工智能学习笔记,人工智能...

    CCNA学习笔记 CCNA学习笔记

    CCNA学习笔记 CCNA学习笔记 CCNA学习笔记

    nginx学习笔记(软件+学习笔记)

    nginx学习笔记(软件+学习笔记) 仅供学习交流! 后续会持续分享相关资源,记得关注哦! nginx学习笔记(软件+学习笔记) 仅供学习交流! 后续会持续分享相关资源,记得关注哦! nginx学习笔记(软件+学习笔记) ...

    2022吴恩达机器学习笔记汇总(共10章节).zip

    2022吴恩达机器学习笔记汇总(共10章节).zip2022吴恩达机器学习笔记汇总(共10章节).zip2022吴恩达机器学习笔记汇总(共10章节).zip2022吴恩达机器学习笔记汇总(共10章节).zip2022吴恩达机器学习笔记汇总(共10章节).zip...

    docker学习笔记.md

    docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,...

    PHP个人学习笔记

    PHP个人学习笔记

    第一行代码 android学习笔记 完整版

    "Android学习笔记" Android学习笔记是Android开发者的必读书籍,书中涵盖了Android系统架构、Activity、Intent、资源管理等多方面的知识。本笔记对应的学习资源《第一行代码》是Android开发者的入门必读书籍,书中...

    contiki 学习笔记

    Contiki学习笔记:进程、事件、etimer关系 Contiki 实例: Contiki学习笔记:创建两个交互进程 Contiki 主函数剖析: Contiki学习笔记:main函数剖析 Contiki学习笔记:启动一个进程process_start Contiki学习笔记...

Global site tag (gtag.js) - Google Analytics