`
jeffenchung
  • 浏览: 11884 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

S2SH关于actionMessages,jq在load时无法清除的问题

阅读更多
0)BaseAction写了套message处理方法:

	/**
	 * 设定页面显示提示的信息
	 * 
	 * @param msg
	 */
	@SuppressWarnings("unchecked")
	public void setMessage(String msg) {
		Collection<String> messages = this.getActionMessages();
		if (messages != null) {
			messages.clear();
			messages.add(msg);
			this.setActionMessages(messages);
		}
	}

	/**
	 * 清空所有页面的异常信息和校验错误信息
	 */
	public void clearMessages() {
		this.clearErrorsAndMessages();
		this.fieldErrorsList = null;
	}



1)footer.jsp组装了action层弹出提示信息标签
		<!-- 弹出提示信息 -->
		<s:if test="hasActionMessages()">
			<s:iterator value="actionMessages">
				<div id="dialog_message">
					<p style="font-size: 110%">
						<img src="images/form/btn_info16.png" />
						&nbsp;
						<s:property escape="false" />
					</p>
				</div>
				
			</s:iterator>

			<s:if test="!clearErrorsAndMessages()">
				<s:set name="actionMessages" value=""></s:set>
			</s:if>		
		</s:if>



2)jQuery写了组基于dialog实现弹出信息带css样式的脚本:
	/**
	 * 定义确认信息对话框
	 */
	var dialog_message_option = {
		modal : true,
		autoOpen : true,
		width : 280
	};
	$.extend(true, dialog_message_option, {
		title : "提示信息",
		buttons : [ {
			text : "确定",
			click : function() {
				$(this).dialog("close");
				// 手动清空!
				//$("#dialog_message").empty();
			}
		} ]
	});

	if (isNotEmpty($("#dialog_message").html())) {
		$("#dialog_message").dialog(dialog_message_option);
	}


3)问题来了,如果用jquery.layout-latest.js组装页面布局,每次load主表单jsp时,提示信息按上面的方式总是消除不了,可如果正常jsp加载不用load局部加载,正常好使。
试了各种action拦截器清空msg也好、action方法前清空也好,都不行,最后只好加了一句js来控制(上面被注释的那句),点击信息对话框确定按钮时触发:
// 手动清空!
//$("#dialog_message").empty();

4)jsp页面打开debug查看,每次actionMessages对象都是[],看来是load后js的block块在作祟?还是session级别设定有关?或是dom对象所致?
		<s:if test="%{true}">
			<div style="text-align: left; float: left; width: 100%">
				<s:debug></s:debug>
			</div>
		</s:if>
分享到:
评论

相关推荐

    一个利用struts做的简单国际化

    1、struts国际化的配置 ... 理解ActionMessage和ActionMessages两个对象的区别 如何传递国际化消息? * 调用saveMessage()传递普通消息 如何显示国际化消息? 通过标签显示消息(可以显示普通消息和错误消息)

    Struts记录整理文档

    在上述代码中,当用户输入的登录名为空时,通过`ActionErrors errors = new ActionErrors();`创建一个`ActionErrors`实例,并使用`errors.add(ActionErrors.GLOBAL_MESSAGE);`添加错误到全局错误队列。`GLOBAL_...

    Struts解决重复提交步骤

    其基本原理是在客户端与服务器之间传递一个随机生成的唯一标识符(即令牌),通过对比客户端提交时携带的令牌与服务器端存储的令牌是否一致来判断请求是否有效。如果令牌匹配,则认为是合法请求;反之,则拒绝该请求...

    webwork国际化

    WebWork是一个基于Java的MVC(Model-View-Controller)框架,它在早期的Web开发中被广泛应用,尤其是在处理复杂的业务逻辑和数据呈现时。国际化(i18n,Internationalization)是Web应用中的一项重要功能,使得软件...

    07Struts错误处理

    - 当业务逻辑检查出错误时,创建`ActionMessages`对象。 - 示例代码: ```java ActionMessages messages = new ActionMessages(); ``` - **添加错误信息:** - 向`ActionMessages`对象中添加错误信息。 - ...

    struts国际化功能

    Struts是Java Web开发中的一个流行MVC框架,SSH(Spring、Struts、Hibernate)是其常见的集成解决方案。...在实际项目中,还需要考虑日期、数字格式等本地化问题,这可能需要额外的资源文件和编程工作。

    jspSmartUpload完整的上传下载代码及一些实用的方法

    在使用 JSPSmartUpload 时,可能会遇到一些常见问题,如中文文件名乱码以及如何防止重复下载导致积分多次扣除。以下是对这些知识点的详细解释: 1. **获取PageContext的替代方法**: 在Struts框架中,通常通过`...

    struts分页实例

    6. **中文字符处理**:在处理中文字符时,可能会遇到编码问题。`Native2ascii`工具可以帮助我们将非ASCII字符转换为适当的格式,以便在属性文件中正确地存储和读取,例如将GBK编码的中文字符转换。 总的来说,...

    Struts 之旅 - 多国语言

    在Action类中,你可以使用`ActionMessages`或`ActionErrors`对象来添加、存储和传递消息。例如: ```java ActionMessages messages = new ActionMessages(); messages.add(ActionMessages.GLOBAL_MESSAGE, new ...

    struts中ActionForm的validate方法使用小得

    总结来说,Struts的ActionForm`validate`方法是数据验证的关键,它允许我们在用户提交表单时检查数据的正确性。ActionErrors和ActionMessage协同工作,记录并传递验证错误信息。通过配置`struts-config.xml`和使用`...

    struts写的上传下载

    在实现上传下载功能时,安全问题不容忽视。例如,你应该限制上传文件的大小和类型,防止DoS攻击或恶意文件上传。通常,你可以使用`FileUpload`库提供的`SizeLimitExceededException`和`FileItemIterator`来检查文件...

    J2EE中Struts中四种解决中文乱码问题的方法

    在Java Web开发过程中,尤其是使用Struts框架时,经常会遇到中文乱码的问题。本文将详细介绍在J2EE环境下,利用Struts框架解决中文乱码问题的四种实用方法。 #### 方法一:通过添加过滤器解决乱码 **原理介绍**:...

    Struts2&ActionError&ActionMessage&Demo

    当你在业务逻辑层验证用户输入时,如果发现错误,可以创建`ActionError`对象并将其添加到`ActionContext`的`ActionErrors`集合中。`ActionError`通常与`FieldAware`接口结合使用,允许你指定错误是针对哪个表单字段...

    struts 1.2上传下载全部实例

    在本实例中,我们关注的是如何在 Struts 1.2 中实现文件上传和下载的功能。下面将详细解释涉及到的知识点。 1. **Action 类**: `FileAction` 类是 Struts 框架中的一个关键组件,它扩展了 `DispatchAction` 类,...

    struts国际化

    在实现Struts的国际化时,首先需要创建资源文件。这些文件通常以.properties为扩展名,例如`messages.properties`和`messages_zh_CN.properties`。`messages.properties`用于存储默认语言(通常是英语)的文本,而`...

    struts1.x 最简洁国际化 源代码

    - 这告诉Struts在初始化时查找名为`ApplicationResources.properties`的资源包。 6. **控制器逻辑**: - 在Action类中,可以通过`ActionContext`获取当前的`Locale`,并根据它加载对应的资源包。然后,Action可以...

    2009MLDN魔乐科技Struts课堂05-Struts_Struts国际化处理.rar

    4. **Action及JSP中的使用**:在Action类中,我们可以使用`ActionMessages`或`ActionErrors`对象来添加错误或消息,并在JSP页面中通过`&lt;bean:message&gt;`或`&lt;fmt:message&gt;`标签显示这些消息。这些标签会自动从配置的...

    struts1多国语言的实现

    - 要允许用户在应用程序运行时切换语言,可以创建一个Action来处理语言选择,并更新用户的会话或cookies。 8. **注意事项** - 确保所有的资源文件都包含相同的键,以确保每个语言都有相应的翻译。 - 如果某些...

    struts2官方例子8-资源配置文件的使用(包括国际化)

    在Struts2中,资源配置文件和国际化(i18n)是两个非常重要的概念,它们对于创建多语言支持和提供用户友好的界面至关重要。 资源配置文件通常以.properties为扩展名,它们存储了应用中的静态文本,如错误消息、提示...

Global site tag (gtag.js) - Google Analytics