本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7584248
建立时间:2006年5月29日




[Tapestry]Tapestry在静态页面和动态内容分工方面的研究
软件技术

lhwork 发表于 2006/7/11 17:56:08

Tapestry的一个最耀眼的功能是其绝好的模板设计思想,它能够将动态内容以极少的侵入性而展现到HTML页面上,我对其这一功能非常赞赏,如果 Tapestry能够像Spring那样把这一部分HTML模板解析功能独立出来,打成一个Tapestry-Core.jar极不妙哉?! 在工作实践当中,我发现Tapestry提供的Shell组件其实用处不大,美工人员作出的页面大多已包括HTML TITLE HEAD LINK 等标签,如果将这些删除而封装到Shell岂不多此一举?而且Shell引用CSS IMAGE的方式(Asset)比较麻烦。 所以,我建议开发组不使用Shell而直接采用原来静态页面的配置,但是Tapestry对URL进行了处理而且使用Servlet之后相对路径往往会出问题,为此提供了一个简单Base组件,在HEAD中增加一个base标签即可。 如页面头部如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <title>测试页面</title> <span jwcid="base"/> <link href="../css/menu.css" rel="stylesheet" type="text/css"> <script type="text/javascript" src="../js/menu.js"></script> </head> 。。。。。。 Base.java:     protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle) {         BaseTagWriter baseTagWriter = new BaseTagWriter();         baseTagWriter.render(writer, cycle);     } 这样美工的增加的工作就非常非常少了,而且美工与开发人员的配合也变得很愉快了。 个人认为理想的分工效果是这样的: 整个Web应用可以以两种方式浏览,一种是浏览静态的HTML页面,另一种是浏览动态的web内容。如果想以第二种方式浏览则web.xml中增加         <servlet-mapping>             <servlet-name>app</servlet-name>             <url-pattern>*.html</url-pattern>         </servlet-mapping> 这样访问HTML页面时Tapestry会将动态内容发送给浏览器,如果想浏览静态的HTML页面,则删除这个映射即可。 这样一来,美工人员和开发人员共享同一套HTML模板文件,相互之间的干扰比较少。


阅读全文(3138) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144756949 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号