我最近从 Struts 2.0.11 升级到最新版本 (2.3.15),发现无法刷新sx:div标签。这是代码:
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
<sx:head debug="true" />
<script language="javascript" type="text/javascript">
var controller = {
refresh : function() {}
};
dojo.event.topic.registerPublisher("/refresh", controller, "refresh");
</script>
<s:url id="URLAjaxKaptcha" namespace="%{#attr.kaptchaNamespace}" action="kaptcha"/>
<sx:div id="prosoc_kaptcha" theme="ajax" href="%{URLAjaxKaptcha}"
loadingText="<small>loading …</small>"
errorText="Security code is loading - please wait"
listenTopics="/refresh" cssClass="kaptchaDiv">
</sx:div>
<s:a href="javascript:void(0)" onclick="controller.refresh()">click to get a new image</s:a>.
在升级之前,当用户单击刷新超链接时,新的 kaptcha 图像会返回到sx:div。升级后这个就不行了。
我没有收到任何错误消息,我可以在beforeNotifyTopics和afterNotifyTopics中放置警报,这样我就知道正在调用刷新函数。我只是没有在sx:div中获得新的 kaptcha 图像。
有没有人有任何想法?