在rails中有一个Flash Message的概念,使用Flash Message可以用来在页面上展示一些提示信息。
参见 http://rubypond.com/blog/useful-flash-messages-in-rails
在 Struts2中有一个ActionMessage的概念, 同样用来在页面上展示一些提示信息。
但是两者有很大区别,FlashMessage的是存储在Session中的,而ActionMessage只存在于一个request请求的周期中,本次request 请求结束,则ActionMessage就无法获取了,但是在我们的开发中,经常会出现如下场景:
用户修改某信息,修改成功返回原显示界面,并在该界面显示 提示信息。
在这种场景下,用户提交修改数据到action A,A执行完毕会需要跳转回 action B,即这里有一次redirect,此时在A中设置的ActionMessage在redirect过程中会丢失,无法再action B的显示页面显示出我们设置的提示信息,如果是Rails中FlashMessage则不存在此问题。
要想在struts2中达到 FlashMessage的效果,必须使用 org.apache.struts2.interceptor.MessageStoreInterceptor 拦截器
参见:http://struts.apache.org/2.1.2/struts2-core/apidocs/org/apache/struts2/interceptor/MessageStoreInterceptor.html
该拦截器在redirect的情况下,会自动将 ActionMessage保存到Session中。
分享到:
相关推荐
在Struts2框架中,ActionError和ActionMessage是处理用户输入验证和错误反馈的重要组件,它们使得开发者能够优雅地管理应用程序中的错误信息和用户消息。 ActionError类是用来存储错误信息的,它继承自`java.lang....
在`Struts2ErrorMessage`这个示例中,你可能会看到如何有效地利用`ActionError`和`ActionMessage`处理错误和成功消息的实例代码。这个Demo可以帮助你理解这两个类在实际项目中的应用,以及如何将它们整合到Struts2的...
同时,Struts提供了许多工具类和API,如`ActionContext`和`ActionMessage`,它们是实现Action间通信的关键。 总的来说,使用Struts的ActionChain可以构建复杂的业务流程,而Action之间的通信则可以通过共享上下文...
1、struts国际化的配置 ... 理解ActionMessage和ActionMessages两个对象的区别 如何传递国际化消息? * 调用saveMessage()传递普通消息 如何显示国际化消息? 通过标签显示消息(可以显示普通消息和错误消息)
例如,在上面的代码中,`message=new ActionMessage("errors.name")`创建了一个ActionMessage对象,它的键值是"errors.name",在资源文件中会找到这个键对应的错误消息文本。 当`validate`方法检测到用户输入的...
3. **使用ActionMessage和ActionErrors**:在Action类中,你可以使用`ActionMessage`和`ActionErrors`对象来收集和传递消息。这些对象会自动与对应的资源文件关联。 4. **JSP页面显示**:在JSP页面上,可以使用`...
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("success.message")); saveErrors(request, messages); ``` `success.message`对应资源文件中的键,值会在页面上显示。 6. **JSP页面显示**: ...
- `ActionMessage`和`ActionErrors`是Struts1用来处理和显示错误消息和一般消息的对象。它们可以从资源包中获取,允许开发者将消息文本与实际代码分离,方便国际化。 4. **Struts标签库**: - Struts1提供了一套...
在Action或者JSP页面中,通过`ResourceBundle`和`MessageResources`接口可以获取并显示对应的国际化文本。 例如,对于上述的错误信息,你可以在属性文件中定义如下的条目: ```properties error.validate.number=...
2. **使用国际化**: 在Action类或者JSP页面中,通过`ActionMessage`和`ResourceBundle`对象来获取和显示本地化消息。在JSP中,可以使用`<bean:message>`标签: ```jsp <bean:message key="hello.message"/> ``` ...
在Action类中,可以通过`ActionMessage`和`ActionErrors`对象来获取和显示错误及消息。例如,可以使用以下代码添加一个国际化消息: ```java ActionMessages messages = new ActionMessages(); messages.add("info",...
errors.add("username", new ActionMessage("error.username.required")); } // 更多验证逻辑... return errors; } ``` `ValidatorPlugIn`则是在struts-config.xml配置文件中定义的,用于指定验证规则文件的...
errors.add("username", new ActionMessage("username.required")); saveErrors(request, errors); return INPUT; } // 更多验证逻辑... return SUCCESS; } ``` 这里,如果用户名为空,将返回一个错误消息...
通过在XML配置文件中定义验证规则,`ValidatorForm` 可以自动检查表单提交的数据,如果数据不符合规则,它会将错误信息添加到ActionMessage对象,然后返回到表单页面显示错误信息。 `DynaValidatorForm` 是 `...
验证失败时,Struts会将错误信息存储在ActionMessage或FieldErrors对象中,然后在JSP页面上显示。 Struts的验证框架也支持自定义验证器,通过实现`Validator`接口或者扩展`FieldAwareValidator`类,开发者可以创建...
如果验证失败,Struts会将错误信息添加到ActionMessage中,然后重定向到错误页面。成功后,Action可以继续处理业务逻辑。 为了自定义验证器,你需要创建一个实现`Validator`接口的Java类,并在`validation.xml`中...
使用`Session`对象初始化邮件会话,然后通过`Message`对象设置发件人、收件人、主题和正文。`Transport`类负责实际的邮件发送。 ```java import javax.mail.*; import javax.mail.internet.*; public class ...
3. **ActionMessage和ActionErrors**:Struts提供了`ActionMessage`和`ActionErrors`类,它们分别用于存储成功的消息和错误消息。这些消息可以从资源包中获取,并在视图层显示。 4. **Tiles和FreeMarker模板**:在...
JSP页面将根据Struts传递的ActionMessage或ActionError对象显示相应的内容。 总结,"struts_i18n1_login"实例展示了如何在Struts中实现国际化登录功能,这涉及到配置Struts、创建和管理资源包、在JSP页面中使用资源...