不清楚大家有没有遇到过类似的问题。在前一次操作没有结束时,又重新发布更新的war包。刷新原来的页面就会出现一个报错页面:
You have clicked on a stale link.
Rewind of form /Index/form expected only 0 form elements, but an additional id was requested by component Table.$If.
This is most likely the result of using your browser's back button, but can also be an application error.
You may continue by returning to the application's home page.
如何解决这类问题呢?在上一个完成的工程里就没有解决这个问题,因为是给单位内部人员用,就没有去处理这种错误。
今天,有幸得到干煸四季豆大哥的帮忙,得到了解决办法。
hivemodule.xml:
<contribution configuration-id="tapestry.InfrastructureOverrides"></contribution>
<property name="staleSessionPageName" value="Home"></property>
<property name="exceptionPageName" value="Error"></property>
<property name="staleLinkPageName" value="Error"></property>
其中Error是自定义的报错页面。
可能Error.page要定义一个属性变量exception。我是在Tapestry4.0.1上面试的。
<property name="exception"></property>
分享到:
相关推荐
在Tapestry中,大多数的编程都是声明式的,这意味着开发者可以使用XML或注解来定义页面和组件的行为,而不是编写大量的Java代码。这降低了代码的复杂性,提高了可读性和维护性。 4. **页面和组件生命周期**: ...
在本篇文章中,我们将深入探讨Tapestry的页面编辑组件,以及如何利用这些组件创建交互式的用户界面,包括文本框、单选框、多选框和下拉框。 首先,让我们理解什么是Tapestry页面编辑组件。在Tapestry中,组件是可...
4. **编写第一个页面**:在Tapestry中,一个页面是由一个或多个组件组成的。你需要定义一个类来表示页面,并在HTML模板中声明组件。 接下来,我们转向"tapestry组件.docx",组件是Tapestry的核心组成部分,它们是可...
2. **模板和元数据**:Tapestry使用HTML模板定义页面布局,并通过元数据(如TML文件)来指定组件的属性和行为。元数据文件通常与HTML模板一起存放,提供了一种声明式配置组件的方式。 3. **请求处理**:当用户发送...
5. **页面生命周期**:Tapestry定义了页面从初始化到销毁的完整生命周期。每个页面都有一个对应的Java类,该类在页面加载、提交表单等操作时被实例化和调用。 6. **切换皮肤**:在Tapestry中,可以轻松实现皮肤的...
Tapestry的异常处理机制允许开发者通过`ErrorHandler`接口定制错误页面。`Validator`和`ValidationDelegate`则负责表单验证。 9. **性能优化** 为了提高性能,Tapestry实现了组件级缓存和页面状态的持久化。`...
4. **模板和组件脚本**:Tapestry使用HTML模板文件来定义页面布局,而组件脚本(如JSP或FreeMarker)则用来插入动态内容和逻辑。 5. **URL映射**:Tapestry通过URL映射自动将URL与页面和组件对应,无需手动配置,...
1. **Tapestry Core**: 这是Tapestry框架的基础部分,包含了核心组件、服务容器(Tapestry IoC)和页面生命周期管理。通过源码分析,我们可以理解其如何实现页面组件的渲染、事件处理和依赖注入。 2. **Tapestry ...
4) **定义页面**:页面是Tapestry4中的主要交互单元,它由一个或多个组件组成。在Java类中定义页面,然后在HTML模板中引用这些组件。 5) **配置URL映射**:Tapestry4通过元数据来处理URL到页面和组件的映射。在模块...
`.tml`文件是Tapestry的模板语言,结合HTML和Tapestry指令来定义页面布局和交互。在`login.tml`中,我们看到了一个简单的登录页面,包含一个链接到结果页面的`<t:actionlink>`元素。同样,`Result.tml`展示了结果...
Tapestry 4.0 还引入了强大的模板语言,允许开发者使用XML来定义页面结构,并结合Java代码定义组件的行为。这种模板语言与后端逻辑的分离,提高了开发效率,同时也使得设计师和开发者可以更方便地合作。 在表单处理...
2. **组件实例化**:根据页面和组件定义,Tapestry 创建必要的组件实例。 3. **状态管理**:Tapestry 自动处理组件状态的保存和恢复,确保在多个请求间保持一致性。 4. **渲染**:Tapestry 将组件渲染成HTML响应,...
相反,Tapestry的核心关注点在于页面、组件、事件、对象、方法和属性的管理。 Tapestry4.1.2 版本基于Servlet技术,构建在request-response模式之上,它将复杂的HTTP交互隐藏在幕后,使得开发者能够专注于业务逻辑...
8. **错误和异常处理**:Tapestry 4提供了一套完整的错误和异常处理机制,使得开发者可以优雅地处理运行时错误,向用户展示友好的错误信息。 9. **测试支持**:Tapestry 4的组件测试框架允许开发者编写单元测试,...
"tapestry学习入门资料" Tapestry 是一个开源的基于 servlet 的应用程序框架,它使用组件对象模型来创建动态的、交互的 web 应用。 Tapestry 使得 Java 代码与 HTML 完全分离,利用这个框架开发大型应用变得...
4. **错误和异常处理**:如何捕获和处理运行时错误,以及定义自定义的错误页面。 5. **性能优化**:提供性能调优的建议,如缓存策略、页面编译和压缩等。 6. **安全性和访问控制**:讲解如何实现用户认证和授权,...