2010年09月22日 星期三 13:29
虽然很简单,但也是Rigel Blue Web Framework的第一个应用了。简单说明一下,这个网站是如何实现的。
首先RBWF可以让我们建立很多app,每个app都可以很独立。浏览这个网址所看到的仅是一个叫home的app啦。浏览http://rigelblue.oicp.net/index.yaws/helloworld就可以看到另外一个叫helloworld的app。
每个app底下有自己的controller,view,这两个是必须的。也可以加入js和css。当然要是想搞几个通用的js和css,放到别的目录下也没关系,这和RBWF无关。那么这个网站的目录结构如下。
application
|
|-helloworld
| |
| |-controller
| | |-helloworld_index.erl
| |
| |-view
| |-helloworld.yaws
|
|-home
|
|-controller
| |-home_index.erl
| |-home_download.erl
| |-home_changelog.erl
| |-home_roadmap.erl
|
|-view
| |-home.yaws
| |-download.yaws
| |-changelog.yaws
| |-roadmap.yaws
| |-install.yaws
|
|-js
| |-jquery.js
|
|-css
| |-home.css
|
|-image
在页面上点击Home, Download, Change Log, Roadmap,会分别调用对应的Controller。
这些Controller都会去Load home.yaws这个view。然后把download.yaws, changelog.yaws, roadmap.yaws, install.yaws,分别绑定到home.yaws中,就看到虚线框中的内容。
除了download.yaws,其他三个都是纯html内容,可以被直接绑定。因为download页面要显示的内容是用erlang查找磁盘文件,动态生成的。erlang语句不能被绑定(不会被yaws解析)。download的处理方式为,download.yaws中是js语句,通过get调用download controller中的一个函数,在这个函数中创建内容,再返回给页面。有点折腾,但至少实现了想要的结果。
2010年09月22日 星期三 22:03
真不错!
Zeuux © 2024
京ICP备05028076号