RSF,不像其他的Java Web框架,主要侧重于标记和网页设计师的作用。网页设计师不会被框架产生的标记而限制,也不是被迫围绕内嵌代码或是伪代码来设计。模板是纯粹的XHTML不需要框架知识来创建或是维护。这个创建了完全分离的显示和Java代码隐藏。网页设计师和开发者可以独立工作,而且不需要协调他们的工作,这个你将在示例程序中看到。
RSF目的在于用零服务器环境创建一个框架,这样可以通过在循环的最后扔掉组件树来节省宝贵的服务器资源。这个有别于很多常见的Java框架,例如JSF,凭借框架执行的第一个动作来恢复使用从先前要求中出现的组件树。Session状态是以此来减小较低利用的服务器资源。
RSF目的是通过遵循一个严格的POST->GET重定向以便保留所有的GET请求幂等来遵循在服务器上的正确而有效的浏览器行为。这样,POST纯粹是用来发送数据到服务器上的,而GET是用来返回数据到浏览器上的。这个可以解决很多问题,就是其他框架所面对的浏览器返回钮行为或是深层链接问题。
Recipe List Application
为了演示这些RSF核心组件的主要目的,我们来构建一个非常简单的recipe list应用程序。这个程序将创建一个项目列表,通过允许用户通过网络形式添加更多的项目。这个简单的任务将展示很多的功能包括:模板建设,链接行为,简单的国际化和表格粘贴。
为了开始这个简单的程序,首先你需要为RSF准备好一个环境。RSF的wiki网站有一个很棒的指导来安装RSF Development Environment,但是不在本文的讨论之内。一旦完成安装,你可以通过在程序中创建XHTML模板来开始程序了。如上述所提到的,这些都是纯粹的XHTML模板,用它们唯一所关心的外观所建立的。对于这个简单的程序,要有两页,所以你需要创建两个XHTML模板:
recipelist.html
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> < html xmlns:rsf="http://ponder.org.uk/rsf" xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> < head> < meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> < title rsf:id="msg=title">Recipe List< /title> < link href="../css/styles.css" type="text/css" rel="stylesheet" media="all"/> < /head> < body> < h1 rsf:id="msg=header">Recipe List< /h1> < ul rsf:id="message-for:*" style="margin:0px;"> < li>Message for user here< /li> < /ul> < h4 rsf:id="current_count">There are currently {0} item(s).< /h4> < ul> < li rsf:id="current_items:"> < span rsf:id="row_item">An Item< /span> < /li> < /ul> < a rsf:id="add_item">Add an Item< /a> < /body> < /html> |
[1] [2] [3] [4] [5] 下一页