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" />
 
<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>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值