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


«October 2025»
1234
567891011
12131415161718
19202122232425
262728293031


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

我的分类(专题)

日志更新

最新评论

留言板

链接

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




[Tapestry]Tapestry4初试小结
软件技术,  电脑与网络

lhwork 发表于 2006/7/10 10:16:56

Tapestry 4 beta5一、注意空格。tapestry这点作的不太好。如果在一些属性中开始或结尾多写了个空格,就会发生错误,而且很难找出来。二、中文乱码问题      在*.application中加入下面语句:         三。Shell组件默认Render出来的meta有限,有时需要扩展,通过delegate属性,下面是个例子: public class HeadMetaRender implements IRender {    public void render(IMarkupWriter writer, IRequestCycle cycle) {        writer.begin("meta");        writer.attribute("http-equiv","Content-Language");        writer.attribute("content","zh-cn");        writer.closeTag();        writer.begin("meta");        writer.attribute("http-equiv","Content-Type");        writer.attribute("content","text/html; charset=gb2312");        writer.closeTag();    }四、今天尝试了Application State Object,Localization,FriendURL。FriendUrl比较好弄,给的文档也比较详细。按照文档copy就可以了。没有仔细研究。Locaition也很好弄,为每个页面写一个properties文件用于文件里面的文字,再为application写一个用于做系统通用信息。只是注意编码                              dest="${webinfo.dir}/page"                  includes="*.properties"                  excludes="TNetCatcher.properties"/>                           dest="${webinfo.dir}"                  includes="*NetCatcher.properties"/>    在ant中加入如上target。Application State Object 相关的东西弄了半天。我要做一个验证用户合法性的功能,就是看VisitObject(Session Scope)中又没有用户信息,如果没有用户信息就跳转到登录页面。这样的功能以往我是写一个LoginFilter里检查Session。但是在 Tapestry中不建议直接操作Session。虽然我也可以知道那个VisitObject在Session中的名字(一般为"state:App- Name:visit-Name"),但是还是不用Filter了。我就写了一个MyBasePage继承与BasePage然后添加了一个 MyPageValidateListener 实现 PageValidateListener 在MyPageValidateListener 的pageValidate方法中进行验证。 public class MyPageValidateListener implements PageValidateListener {    public void pageValidate(PageEvent event) {        IRequestCycle cycle = event.getRequestCycle();        MyBasePage page = (MyBasePage) event.getPage();        AppVisit visit = page.getAppVisit();        if(visit.getCustomer()==null                &&!page.getPageName().equals("Login")                &&!page.getPageName().equals("Register")                &&!page.getPageName().equals("GetPassword")){            IPage login = cycle.getPage("Login");            throw new PageRedirectException(login);        }    }}这里,最好在最后Throw一个PageRedirectException,不要用cycle.activate()。这样有一点要注意的是,必须在没有页面的page文件中加入 把Visit 对象注射进去。我不知道Tapestry4为什么建议这样用,而不是用原有的getVisit方法。这样做的确使得程序灵活的很多可以自定义很多ASO。 而不是仅仅局限于Global和Visit。但是我感觉也比较麻烦。当然原来的Visit和Global还是可以用的。五Tacos - Tapestry Componentshttp://tacos.sourceforge.net/现在升级到4.0了,增加了很多新组件,以Ajax应用为主。以后应该关注。2005年9月11日这 一周来,利用在家里的一点点空闲实现,慢慢的熟悉Tapestry。从最开始的getting started,到熟悉各种component,现在已经开始慢慢的尝试自己做component了。今天做了一个很简单的Component,会显示 tooltip的Insert组件。最然很简单只是在render的过程中加入一些js语句而已,但是自己已经很高兴了。现在越来越感觉到用 Tapestry的乐趣了。Tapestry的确是一个很优秀也很有趣的Web Framework。还有很多有意思的东西值得去研究。现在我遇到的难题是Script部分。据说Tapestry对javaScript支持作的很好, 但是我现在的感觉是,满头雾水。再慢慢研究吧。


阅读全文(2466) | 回复(1) | 编辑 | 精华
 


回复:Tapestry4初试小结
软件技术,  电脑与网络

冰川(游客)发表评论于2006/7/28 10:45:00

最近,公司在用Tapestry4做项目,虽然我都已经做了几个页面了,可还是有点犯糊涂。特别是,页面中的jwcid="@XX",到底要不要在.page中配置的问题,不过好象Tapestry自带的那40多个components是不用配置的。另外,<span jwcid="@Insert" value="abcDTO.name"/>中的abcDTO可以在.java页面后台中被设置为属性,如:private AbcDTO abcDTO;这个属性的值该怎么注入好呢,晕死,搬User Guide上的代码都做了几个页面了,这些基础的问题还没弄清楚大家有空的话请讨论一下我上面的问题,谢谢各位了


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

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



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

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