Tapestry的template和specification定义在不同文件夹的方法
来源:互联网 发布:投行入门书籍 知乎 编辑:程序博客网 时间:2024/06/11 22:51
最近有朋友问:“把‘*.page’与‘*.html’完全分开,静态页面自己就是一个完整的项目,但Tapestry默认情况下是找不到的,有什么方法才能做到呢?”。
解决的方法很简单,Tapestry内部已经支持了这种做法,只是估计由于Tapestry的作者不是特别推荐这种做法所以没有介绍这种方法。在Tapestry3和Tapestry4中解决这个问题的方法都一样。在定义文件中定义一个特殊以"$template"命名的资源就可以了。比方说以Tapestry4为例,通过如下的定义就可以将一个定义文件与一个模版文件联系起来。
<page-specification >
<asset name="$template" path="context:WEB-INF/pageName.html"/>
</page-specification >
另外,Tapestry4是可以使用路径加定义文件来搜索页面或组件。比方说我有如此一个页面文件"WEB-INF/pages/hawk.page", 那么如果我不在*.applicaton 文件中定义这个页面的话,可以使用"pages/hawk"作为页面的名称。在我需要在页面调用该页面可以用“<a jwcid=‘@PageLink’ page=‘pages/hawk’>...</a>”等形式。
Tapestry4在框架的扩展性方面做了很多工夫,可以说现在它的扩展性是很强了。如果果真程序需要使用比较特别的方法定义定义文件和模板文件的话可以使用框架的扩展点来扩展模板读取的策略。当然,这个也需要有对Tapestry更深入的了解。比如模板文件放在数据库中或着是运行时动态生成,那么可以用如下形式在*.application 中添加一个合适的模版文件读取的代理类。当框架使用默认的模板读取方式无法读取到文件的时候就会调用自定义的方式来读取模板。
<extension name="org.apache.tapestry.template-source-delegate " class="implement of org.apache.tapestry.engine.ITemplateSourceDelegate"/>
总的来说,页面的定义文件是最为重要的(当然Tapestry4对这个定义作了扩展,可以使用JAVA5的注释类型)。通过它将java类和模版联系起来。它除了可以指定对应的java类,也可以指定对应的摸板文件。Tapestry认识一个页面也首先是从这个定义文件开始的。
解决的方法很简单,Tapestry内部已经支持了这种做法,只是估计由于Tapestry的作者不是特别推荐这种做法所以没有介绍这种方法。在Tapestry3和Tapestry4中解决这个问题的方法都一样。在定义文件中定义一个特殊以"$template"命名的资源就可以了。比方说以Tapestry4为例,通过如下的定义就可以将一个定义文件与一个模版文件联系起来。
<page-specification >
<asset name="$template" path="context:WEB-INF/pageName.html"/>
</page-specification >
另外,Tapestry4是可以使用路径加定义文件来搜索页面或组件。比方说我有如此一个页面文件"WEB-INF/pages/hawk.page", 那么如果我不在*.applicaton 文件中定义这个页面的话,可以使用"pages/hawk"作为页面的名称。在我需要在页面调用该页面可以用“<a jwcid=‘@PageLink’ page=‘pages/hawk’>...</a>”等形式。
Tapestry4在框架的扩展性方面做了很多工夫,可以说现在它的扩展性是很强了。如果果真程序需要使用比较特别的方法定义定义文件和模板文件的话可以使用框架的扩展点来扩展模板读取的策略。当然,这个也需要有对Tapestry更深入的了解。比如模板文件放在数据库中或着是运行时动态生成,那么可以用如下形式在*.application 中添加一个合适的模版文件读取的代理类。当框架使用默认的模板读取方式无法读取到文件的时候就会调用自定义的方式来读取模板。
<extension name="org.apache.tapestry.template-source-delegate " class="implement of org.apache.tapestry.engine.ITemplateSourceDelegate"/>
总的来说,页面的定义文件是最为重要的(当然Tapestry4对这个定义作了扩展,可以使用JAVA5的注释类型)。通过它将java类和模版联系起来。它除了可以指定对应的java类,也可以指定对应的摸板文件。Tapestry认识一个页面也首先是从这个定义文件开始的。
- Tapestry的template和specification定义在不同文件夹的方法
- Tapestry的template和specification定义在不同文件夹的方法
- Tapestry的template和specification定义在不同文件夹的方法
- 函数声明和定义在不同的文件夹下的使用
- template模板在Windows和Linux下的不同用法
- Tapestry 和 Wicket 的比较
- Tapestry 和 Wicket 的比较
- 不同场景下常量的定义方法
- 关于C++ template的定义
- C++Template头文件和定义分开编译的问题
- C++Template头文件和定义分开编译的问题
- 模板template和宏定义define一起的例子
- C++ 定义适应不同平台调用不同代码的方法
- 为什么release文件夹和debug文件夹的程序不同
- 关于在onCreate()方法中定义变量和在方法体外定义变量的区别
- 不同文件夹的功能
- 在MyEclipse 中添加自己定义的文件模版(----为myeclipse新建一个tapestry 5的tml模板)
- Ruby中,在method外和method内定义的@变量是不同的
- HiveMind介绍
- Friendly URLs in Tapestry
- 使用tapestry-prop提高Tapestry运行效率
- Tapestry4改进运行效率的实现方法
- Tapestry绑定的作用与实现
- Tapestry的template和specification定义在不同文件夹的方法
- 使用tapestry-delegate提高Tapestry运行效率
- 配置 Tapestry
- Tapestry灵魂——字节码生成
- 15迷问题的证明(15 puzzle)
- 在jsp中使用smartupload组件上传文件
- 不知道写点什么 评评今年看的电影吧
- 探讨为GRIDVIEW中的控件动态添加事件
- LISP之根源