我有一个用例
<html>
<head>
<s:head />
<sj:head jqueryui="true" />
<script type="text/javascript">
$.subscribe('hideTarget', function(event, data) {
$('#'+event.originalEvent.targets).hide("blind");
});
</script>
</head>
<body>
<div align="left" >
<div class="demo" align="center"><a href="#" id="button">Run Effect</a></div>
<div id="effect" style="display:none;">
Upload Photos Here
<s:form action="AjaxTest" method="post" theme="xhtml" enctype="multipart/form-data" >
<s:file name="userImage" label="User Image" />
<sj:submit targets="result" effect="blind" effectMode="show" onEffectCompleteTopics="hideTarget" value="Upload" button="true" />
</s:form>
<br/>
<img id="indicator" src="progressbar.gif" style="display:none" alt="loading"/>
</div>
<sj:div effect="pulsate" effectDuration="1500" onEffectCompleteTopics="hideTarget" cssClass="welcome" id="result"></sj:div>
</div>
<!-- End demo -->
</body>
如您所见,我正在使用 ajax 调用上传单个文件。当您单击“运行效果”链接时,一个 div 将在该文件标签中向下切换,选择文件,上传它,它将显示成功上传的消息,并在隐藏该成功消息后显示该消息。 直到它工作正常但我的问题是当你想上传另一个文件时它会显示文件标签你也可以选择但是当你提交表单时它没有显示成功的消息但是文件被上传到服务器和文件标签中以前上传的文件名是他们的
注意:我的要求是每次用户使用 ajax 调用提交表单时都应该显示成功上传的消息
我的成功.jsp 是
<body>
<s:if test="hasActionMessages()">
<s:actionmessage/>
</s:if>
<s:if test="hasActionErrors()">
<s:actionerror/>
</s:if>
</body>
Struts.xml
<action name="AjaxTest" class="AjaxCallAction">
<result name="success">/success.jsp</result>
</action>
就像下面这个 http://www.weinfreund.de/struts2-jquery-showcase/index.action的链接