论坛首页 Java企业应用论坛

Tapestry5中 page template不能reload。

浏览 9706 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-05-19  
我使用的是Tapestry5.0.4,我想将项目中的页面类*分包*管理
我在web.xml设置了
<context-param>
<param-name>tapestry.app-package</param-name>
<param-value>org.opend.bogo</param-value>
</context-param>
这样我就可以建立子包org.opend.bogo.pages.admin,将一些页面类建立在该包下
如:我生成了两个文件Shop.java, Shop.html在该包下,这样我通过
http://localhost/bogo/admin/Shop.java
一切OK(注意这里bogo是虚拟目录名)

现在我想把Shop.html移动到web context相关目录下统一管理,如WEB-INF/admin下
但是当我再次访问时,系统总是提示我找不到这个.html文件

你知道这个问题怎么处理吗?
0 请登录后投票
   发表时间:2007-05-21  
不是放到WEB-INF下面吧  你试试放到WebContent/admin里面。 如果不行的话就只有放在package里面了
0 请登录后投票
   发表时间:2007-05-22  
我进行很多测试后发现原来是这样
如果Page类名和子包相同或者以为子包名为前缀,则发生这个问题,否则不会
如Admin.java, Admin1.java放到包org.opend.bogo.pages.admin下时,如果此时把Admin.html,Admin1.html放到WEB-INF/admin下就不行,必须放到Page类包下,
否则则没问题
0 请登录后投票
   发表时间:2007-05-22  
T5新增页面是不能热部署,因为T在启动时创建所有页面的实例。
0 请登录后投票
   发表时间:2007-05-22  
koda 写道
我进行很多测试后发现原来是这样
如果Page类名和子包相同或者以为子包名为前缀,则发生这个问题,否则不会
如Admin.java, Admin1.java放到包org.opend.bogo.pages.admin下时,如果此时把Admin.html,Admin1.html放到WEB-INF/admin下就不行,必须放到Page类包下,
否则则没问题


你看文档的时候需要仔细一点。。

http://tapestry.apache.org/tapestry5/tapestry-core/guide/component-classes.html

引用
Sub-Folders / Sub-Packages

Classes do not have to go directly inside the package (pages, components, mixins, etc.). It is valid to create a sub-package to store some of the classes. The sub-package name becomes part of the page name or component type. Thus you might define a page component com.example.myapp.pages.admin.CreateUser and the logical page name (which often shows up inside URLs) will be admin/CreateUser.

Tapestry performs some simple optimizations of the logical page name (or component type, or mixin type). It checks to see if the package name is either a prefix or a suffix of the unqualified class name (case insensitively, of course) and removes the prefix or suffix if so. The net result is that a class name such as com.example.myapp.pages.user.EditUser will have a page name of user/Edit (not user/EditUser). The goal here is to provide shorter, more natural URLs.
0 请登录后投票
   发表时间:2007-05-22  
KorbenZhang 写道
T5新增页面是不能热部署,因为T在启动时创建所有页面的实例。


你是tapestry群里面的kroben吧。
0 请登录后投票
   发表时间:2007-05-22  
KorbenZhang 写道
T5新增页面是不能热部署,因为T在启动时创建所有页面的实例。


确实有这个问题。 这点就非常不爽。 T5离真正使用到项目中还需要时间。 而且现在的组件太少了。 现在做项目的话  TAPESTRY4 还是更合适。 毕竟非常成熟了。
0 请登录后投票
   发表时间:2007-05-24  
To dengyin2000 

谢谢你的提醒,我今天仔细看过官方文档,的确是这样,怪我心情急躁,以后注意:)
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics