1- 可以在同一个应用里发布不同的子项目。
2- 首先需要在web.xml里声明两个不同名称的Servlet,然后分别映射到不同的URL。
3- 然后将两个子项目的html,page文件放到各自的 WEB-INF/servlet-name/目录下,而page类文件在相同src目录里的不同包里就可以了,会在各自的.application文件中指向各自的类包。(每个Tapestry子项目都可以拥有属于自己的.application和hivemodule.xml文件)
4- 然后要在URL不是映射为app的子项目的.application文件中配置
<meta key=”org.apache.tapestry.servlet-path” value=”/notapp” />
6- 默认情况下.page文件要放在 context/ ,WEB-INF/ , WEB-INF/servlet-name/ 下面。
如果不放在以上的目录,就要在.application文件中声明:
<page name=”mypagename” specification-path=”/mydirectroy/mypage.page” />
以/开头表示以context目录为根目录。
Tapestry根据页面名称找到页面规范文件,然后在页面规范文件所处目录中寻找规范对应的HTML模板文件。
7- 在.application文件中指定 页面名称 与 .page 文件的位置关系。
<page name=”mypagename” specification-path=”/mydirectroy/mypage.page” />
在.page文件中指定.page文件 与 .html 文件的位置关系。(如果.html文件不与.page在默认的同一目录)
<asset name=”$template” path=”context:/myhtmldirectory/mypage.html” />
8- application namespace 就是指tapestry应用的常规内容
framework namespace 就是tapestry框架自带的一些组件和页面。
在.application里面可以为.library配置别名的,这个别名作为namespace来用。
1-application里配置的和没有配置的页面 都使用 默认的 也就是 application namespace
2-application里配置的library都是单独的namespace
3-每个单独的.application文件也可以认作一个namespace
这个主要用来查找文件
context: 和 classpath: 只是指明了相对路径,根namespace没有多大关系。