地址:http://howardlewisship.com/tapestry-javaforge/tapestry-flash/
Description
This library is an extension to Tapestry 4.0 that provides a new type of property persistence strategy, "flash". A flashed property is stored in the session only briefly ... until the next request that accesses that page.
Flashed properties are most often used to store temporary messages. They are extremely useful when combined with the redirect-after-post pattern for handling form submissions.
The name and the idea have been borrowed from Ruby On Rails.
Usage
Any property of a page or component may be marked as persisting in the flash. Using the @Persist annotation:
public abstract class MyPage extends BasePage
{
@Persist("flash")
public abstract String getMessage();
public abstract void setMessage(String message);
Alternately, you may use the <property> element in a page or component specification:
<property name="message" persist="flash"/>
Flashed properties make the most sense when combined with the redirect-after-post pattern (otherwise, the flashed properties may appear to live too long: once for the initial render, then once more on the next access to the page). The redirect-after-post approach is very easy to implement in Tapestry 4.0. From the form's submit listener method:
@InjectObject("engine-service:page")
public abstract IEngineService getPageService();
public ILink doFormSubmit()
{
// ... write data to a database
setMessage("Your changes have been saved.");
return getPageService().getLink(false, getPageName());
}
Returning an ILink from a listener method causes Tapestry to send a redirect reponse to the client web browser; the use of the page engine service will cause the current page to be redisplayed, with the message set in the listener method ("Your changes ...").
If the user refreshes the page, the form will not be resubmitted, instead, the page will simply be re-rendered. The message will, however, not appear (that is the nature of the flash; values stick around only until used the first time).
分享到:
相关推荐
下面详细解释几种防止Layui表单重复提交的方法。 首先,在HTML表单中,为了避免在提交时页面刷新导致的重复提交,可以在标签中使用onsubmit="return false;"属性。这个属性的作用是在表单提交时返回false,阻止...
在Web开发中,表单重复提交是一个常见的问题,可能导致数据的冗余或错误。JavaScript作为客户端脚本语言,可以通过多种策略来防止用户意外或恶意地多次提交表单。以下是一些关键的知识点: 1. **禁用提交按钮**:最...
在现代Web应用开发中,防止表单重复提交是一项重要的任务,因为这可能导致数据不一致性和服务器资源浪费。本文将深入探讨如何使用Spring Boot 2.1、Redis和拦截器来实现这一功能。以下是对这个主题的详细解释: ...
在Web开发中,用户表单重复提交是一个常见的问题,它可能导致数据冗余或者数据库状态的不一致。本示例提供了一种解决方案,包括在前端JavaScript和后端进行处理,以防止用户因网络延迟或误操作导致的多次提交。 ...
基于 SpringBoot 实现表单重复提交解决方案 表单重复提交是指在一次请求完成之前防止重复提交,解决表单重复提交有多种形式,以下以 Aop+自定义注解+Redis 为例来介绍。 解决方案的详细流程 1. 当页面加载时,...
在Web应用中,表单重复提交是一种常见的问题。通常,这种问题发生在用户在提交表单后,由于网络延迟或用户的误操作再次点击提交按钮,或者在表单提交后刷新浏览器页面。这两种情况都可能导致服务器接收到重复的请求...
本篇文章将探讨如何有效地防止JSP页面中的表单重复提交,确保系统的稳定性和数据的准确性。 一、理解表单重复提交的问题 当用户点击提交按钮后,由于网络延迟或浏览器刷新等原因,可能导致同一份表单数据多次发送...
在ASP.NET web应用程序中,表单重复提交是一个常见的问题,可能导致数据不一致或者数据库操作的冗余。为了确保用户在提交表单时不会无意或有意地多次发送请求,我们需要实施有效的防止表单重复提交的策略。以下是...
在这个SSH笔记中,我们将深入探讨四个核心主题:数据验证、文件上传下载、防止表单重复提交以及自定义拦截器。 首先,我们来谈谈数据验证。在Web应用中,数据验证是必不可少的一环,它确保用户输入的数据符合业务...
然而,如果没有适当处理,可能会出现表单重复提交的问题,这可能导致数据的不一致性和服务器资源的浪费。本篇文章将深入探讨如何防止表单重复提交,主要关注于基于Struts2框架的解决方案。 首先,理解表单重复提交...
### ASP.NET中防止刷新页面造成表单重复提交 在Web应用程序开发中,特别是在使用ASP.NET进行网站构建时,一个常见的问题是表单重复提交。这通常发生在用户通过按下浏览器的F5键来刷新页面的情况下,此时之前的表单...
在Web开发中,表单重复提交是一个常见的问题,它可能会导致数据冗余或者不一致,尤其是在处理关键操作如交易、订单或用户注册时。这里我们深入探讨这个问题,并提供解决方案。 标题"表单重复提交问题1"所涉及的核心...
在Web开发中,表单重复提交是一个常见的问题,可能导致数据不一致或服务器资源浪费。Servlet、Struts和SpringMVC是Java Web开发中常用的三大框架,它们各自提供了处理这一问题的策略。以下将详细探讨这三种框架如何...
防止表单重复提交的方法(简单的token方式),内附实现代码及实现思路。
在Web开发中,防止表单重复提交是一个重要的问题,它能确保用户操作的唯一性和数据的一致性。ThinkPHP 3.2 是一个基于MVC模式的PHP开发框架,提供了丰富的功能来帮助开发者构建安全、高效的应用。在这个场景中,我们...
Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-...
在IT领域,尤其是在Web开发中,表单重复提交是一个常见的问题,可能导致数据不一致或数据库冗余。本文将深入探讨如何在客户端和服务器端通过不同的方法来防止这种情况发生。 首先,客户端的防护主要依赖于...