2012-04-10 2 views
0

Ich habe einen AnwendungsfallAjax Ergebnis div refresh in struts2

<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> 

wie u sehen, kann ich eine einzelne Datei mit Ajax-Aufruf am hochzuladen. Wenn Sie auf Run Effect klicken, wird ein Div in diesem Datei-Tag nach unten schalten, die Datei auswählen, hochladen und die erfolgreich hochgeladene Nachricht mit dem Effekt anzeigen und danach die Erfolgsmeldung ausblenden. bis zu dem es funktioniert gut, aber mein Problem ist, wenn Sie eine andere Datei hochladen möchten, wird es anzeigen Datei-Tag können Sie auch auswählen, aber wenn Sie das Formular senden es zeigt keine erfolgreiche Nachricht, sondern Datei wird in Server und auch hochgeladen Datei-Tag vorheriger uploaded Dateiname ist ihr

HINWEIS: meine Anforderung ist es Benutzer erfolgreich hochgeladen Nachricht für jedes Mal zeigen soll einreicht Form Anruf mit ajax

mein success.jsp ist

<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> 

genau wie der Link unterhalb dieser http://www.weinfreund.de/struts2-jquery-showcase/index.action

+0

Wenn Sie vertraut sind mit jQuery loswerden diese sj tags und jquery direkt verwenden ... dann können Sie tun, was Sie wollen (Sie können dann Fragen stellen, die nur mit jquery getaggt sind und schnelle Antworten bekommen). Das Problem ist, Ajax-Tags sind peinlich. Die meisten erfahrenen struts2-Benutzer kennen ein oder mehrere JS-Framework (s), sodass nur wenige hier helfen können (warum sollte man eine unbeholfene Tag-Bibliothek verwenden, wenn es einen viel besseren Weg gibt). JQuery-Benutzer können nicht helfen, weil die Details hinter einer Tag-Bibliothek verborgen sind. – Quaternion

+0

danke als irgendein Vorschlag, wie man in jquery kommt – user1184777

+0

Es tut mir leid, es wird eine Weile dauern, bis ich antworten kann ... aber ich benutze das struts2-json-plugin auf die Aktionen, die ich Ajax verwenden möchte. Überarbeiten Sie die Frage, um so viele Details wie möglich über den Server zu verbergen, wenn Sie Fragen auf der Clientseite stellen. Einfach sagen: Hier ist, was ich will, hier ist, was ich versucht habe die JS/HTML (vielleicht CSS) habe ich bisher, und das ist, was der Server sendet, wenn ich diese URL verwenden. – Quaternion

Antwort

0

Dont id = "Ergebnis" in Verwenden Namen verwenden = "Ergebnis" und verwenden formIds in