Quelqu'un peut-il expliquer ce comportement de rafraîchissement étrange AJAX Struts 2?

StackOverflow https://stackoverflow.com/questions/320852

  •  11-07-2019
  •  | 
  •  

Question

Nous avons le code suivant (listé ci-dessous) dans notre JSP. Nous voyons l'action configurée dans le href du div id = pwcercontainer appelée deux fois. Je ne peux pas comprendre exactement pourquoi. Si vous remplacez le sx: div label = "" Déploiement d’enregistrements par l'administrateur" par un div non-struts, l'action ne sera appelée qu'une fois. Nous ne voyons rien dans la documentation de sx: div qui explique ce comportement.

Quelqu'un sait-il quelque chose à ce sujet ou a-t-il une expérience similaire?

Merci. NCF

<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/tags/c.tld" prefix="c" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/tags/arcade.tld" prefix="arcade" %>
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>

<s:url id="pwcerAjax" action="pwcerajax" method="start" includeParams="none"/>
<s:url id="pwAjax" action="pwajax" method="start" includeParams="none"/>
<s:url id="listPendingDeploymentsLink" action="listPendingDeployments" namespace="/"/>
<s:url id="record" action="recordDeploymentFragment" method="showAdminRecord" namespace="/"/>



    <sx:div label="Admin Record Deployment" >

        <!-- Div where content will be displayed --> 
        <sx:div id="pwcercontainer" href="%{pwcerAjax}" showLoadingText="false" indicator="recordImage" preload="true">
        </sx:div>

        <div id="loadingContainer"><img id="recordImage" src="images/ajaxLoadingAnimation.gif" style="display:none" alt="loading animation"/></div>

    </sx:div>
Était-ce utile?

La solution

Je suis tombé sur ce problème plusieurs fois maintenant et c’est toujours une erreur de ma part. Soit retourner un fragment contenant le code appelant:

<s:url id="getDeployQueue" action="deploymentQueue"  />

<sx:div href="%{#getDeployQueue}" formId="queueForm" executeScripts="true" autoStart="true" updateFreq="3000" preload="false" showLoadingText="false" listenTopics="refreshqueue" id="deploymentQueue" >



    THE CODE RETURNED in HERE CONTAINS THE s:url id="getDeployQueue" duplicating it and resulting in double calls

</sx:div>

Ou j'ai défini l'attribut cible d'une autre balise ajax pour qu'il soit un sx: div alors que je devrais vraiment le mettre à jour à l'aide d'un sujet dojo.

J'espère que cela aide quelqu'un

Neil

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top