关于失效链接(stale link):
当form的动态部分用来表现持久化属性的时候, web浏览器和服务器有可能不同步,就造成了一个固有的问题。当form被submitted的时候,Tapestry会发觉引入的form与储存在服务器中的状态不匹配,这就是失效连接。
对于失效连接,是Tapestry特有的没有办法避免的问题。所以我们在处理这种情况的时候要非常小心。至于为什么产生失效连接,这与Form组件运行机制有关,通常发生在Form组件使用Foreach组件循环的时候。Tapestry为Form及包含在其中的所有组件自动分配一个唯一的元素ID。当submitted的时候,Tapestry将form里面动态的数据输入到服务器中的持久化属性。然后,点击浏览器上的后退按钮,浏览器回到被submitted之前的状态,如果这个时候,再次发生submitted,Tapestry会发现,form里面的动态数据和服务器中的持久化属性不匹配,因为服务器中的持久化属性已经被改动。请注意“持久化”这三个字。
在以前的servlet应用程序里面不会发生这种情况,因为在后退之后再submitted,HttpSession保存的状态是后退之前放在缓存中的状态,所以不会造成失效连接。而Tapestry是动态加载组件,并且为每个组件指定唯一的不可重复的ID。
为了解决失效连接问题,Tapestry提供了另外一个组件listEdit来取代Form+Foreach组合来完成循环遍利功能。
(摘自<<Tapestry 开发指南>>)
分享到:
相关推荐
Tapestry是一款强大的Java Web应用程序框架,由Apache软件基金会维护,它强调了组件化、模块化和可重用性,使得开发复杂的Web应用变得更加简单。本文将深入介绍Tapestry 4的相关知识点。 1. **组件化编程**: ...
Tapestry是一款强大的Java Web应用程序框架,由Apache软件基金会维护,它提供了一种基于组件的模型来构建动态、数据驱动的Web应用。本教程将帮助初学者了解Tapestry的基本概念,带你逐步入门并掌握其核心组件的使用...
Tapestry5最新中文教程.doc 作者 Renat Zubairov & Igor Drobiazko译者 沙晓兰 发布于 2008年7月2日 下午9时30分 社区 Java 主题 Web框架 ----------------------------------------- Tapestry5.1实例教程.pdf ...
"tapestry学习入门资料" Tapestry 是一个开源的基于 servlet 的应用程序框架,它使用组件对象模型来创建动态的、交互的 web 应用。 Tapestry 使得 Java 代码与 HTML 完全分离,利用这个框架开发大型应用变得...
Tapestry是一个强大的Java Web应用程序框架,由Apache软件基金会维护。它强调组件化、模块化和松耦合的开发方式,使得开发人员可以构建出高效、可维护的Web应用。以下是对Tapestry源码、API及相关库的详细解读: 1....
### Tapestry4开发指南 #### 一、Tapestry4概览 Tapestry4作为一款先进的Web应用框架,由Howard Lewis Ship所创造,旨在提供一种更为高效、灵活的Web应用构建方式。与前代Tapestry3相比,Tapestry4在设计上有了...
3. **错误处理和调试**:Tapestry 3提供了一套强大的错误处理机制,包括详细的错误报告和调试工具,帮助开发者快速定位和解决问题。 **四、使用Tapestry 3的所有jar包** 压缩包中的“tapestry3”包含了运行...
【Tapestry4.1.2 入门-介绍】 Tapestry 是一个基于Java的Web应用程序框架,它提供了一种面向组件的开发方式,极大地简化了Web应用的构建过程。在Tapestry中,开发者无需关注HTTP请求的处理细节,如链接、请求流向和...
此外,Tapestry的诊断和日志功能可以帮助开发者快速定位和解决问题。 9. **性能优化** 通过组件缓存、懒加载和高效的请求处理机制,Tapestry能够实现高性能的Web应用。开发者还可以利用AOP(面向切面编程)进行...
2. **类型安全**:Tapestry提供了类型安全的事件处理和页面链接,避免了常见的运行时类型转换错误,提高了代码的健壮性。 3. **强大的表单处理**:框架内置了对HTTP表单的高级支持,包括表单验证、字段级错误显示和...
Tapestry 5.4 提供了优雅的错误处理机制,可以生成详细的错误报告,帮助开发者快速定位问题。同时,其内置的调试工具提供了丰富的信息,如组件树、属性值和事件流等,有助于调试和优化应用。 **7. 国际化与本地化**...
每个页面都有一个唯一的URL,页面组件可以包含文本、图像、链接等基本元素,也可以包含自定义的复杂组件。 2. **组件服务**:Tapestry 提供了一种服务容器,允许开发者创建和管理可重用的服务。这些服务可以在组件...
10. **错误处理与调试**:Tapestry的错误处理机制可以帮助开发者快速定位问题,提供详细的错误报告和堆栈跟踪。此外,其开发模式下的实时反馈功能让调试变得更加高效。 11. **性能优化**:Tapestry通过缓存策略、...
<tapestry:directLink value="Direct Link" action="doSomething" /> ``` **11. TextField组件:** - **用途:**用于创建文本输入框。 - **示例代码:** ```xml <tapestry:textField name="name" label="Name...
此外,Tapestry 提供详细的异常报告,有助于快速定位和解决问题。 在Tapestry 5 中,开发者可以通过创建CRUD(创建、读取、更新、删除)功能的应用来了解框架的核心概念。这包括页面导航、依赖注入和资源注入、用户...
首先,书中会详细介绍Tapestry 4的基本概念,如组件、页面、事件和链接。组件是Tapestry 4的核心,它们是可重用的代码单元,可以是HTML元素、表单控件或复杂的业务逻辑封装。页面是组件的容器,定义了Web应用的结构...
资源名称:深入浅出Tapestry内容简介:本书以循序渐进的方式,从Tapestry框架技术的基本概念入手,讲解Tapestry框架在J2EE Web应用程序中的整体架构实现。使读者在学习如何使用Tapestry框架技术的同时,还能够获得在...
Tapestry是一个基于控件的框架以致于用它开发Web应用类似开发传统的GUI应用。你用Tapestry开发Web应用时你无需关注以操作为中心的(Operation-centric) Servlet API.引用Tapestry网站上的一句话:"Tapestry用对象...