Может ли кто-нибудь объяснить это Struts 2 AJAX Странное поведение при обновлении? - PullRequest
0 голосов
/ 26 ноября 2008

У нас есть следующий код (указанный ниже) в нашей JSP. Мы видим, что действие, настроенное в href div id=pwcercontainer, вызывается дважды. Не могу понять, почему именно. Замена содержащего sx:div label="Admin Record Deployment" на простой неструктурный div вызывает действие только один раз. Мы не видим ничего в документации для sx:div, объясняющей это поведение.

Кто-нибудь знает что-нибудь об этом или имеет подобный опыт?

Спасибо. 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>

1 Ответ

0 голосов
/ 07 апреля 2009

Я уже много раз сталкивался с этой проблемой, и это всегда было ошибкой с моей стороны. Либо возвращаем фрагмент, который содержит вызывающий фрагмент кода:

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

Или я установил целевой атрибут другого тега ajax как sx: div, когда мне действительно нужно обновить его, используя тему dojo.

Надеюсь, это кому-нибудь поможет

Neil

...