Struts2 перенаправление ajax - PullRequest
0 голосов
/ 30 марта 2012

Я разрабатываю приложение, которое построено на Struts2 + Tiles + Dojo (для части AJAX), и у меня есть следующее требование: Каждые 2 секунды мне приходится проверять таблицу из БД, если выполнены определенные условия я должен перенаправить пользователя на специальную страницу.
Я решил эту проблему путем создания действий struts2, которые проверяют таблицу и выдают в качестве ответа что-то вроде:

    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <%@taglib prefix="s" uri="/struts-tags"%>
   <html> 
    <body>      
       <script> 
         window.location= '<s:property value="url"/>';
       </script>
    </body>
   </html>

и эта страница принята через вызов ajax, например:

<sx:div href="%{ajaxUrl}" 
    updateFreq="1200" 
    cssStyle="float:right"
    id="live" 
    loadingText="Loading..." 
    executeScripts="true"
    parseContent="false">
</sx:div>

и вот как я выполняю перенаправление. Я уверен, что должно быть более элегантное и оптимизированное решение.
Есть идеи?

1 Ответ

0 голосов
/ 31 марта 2012

Используйте Struts2-JSON-плагин для действия, которое является целью ajaxUrl. Я не использую теги sx, я просто использую JS (с jQuery, обычная библиотека, не использующая плагин struts2). Любые способы используют JS для асинхронного вызова вашего действия каждые 2 секунды с помощью JS (или структуры выбора), и вы получите URL-адрес в виде строки json, а затем перенаправите на этот новый URL-адрес, если строка не пуста (или вы может вернуть многие переменные, возможно, содержащие некоторые из условий, найденных в БД, и отобразить их на странице и перенаправить в соответствии с этими переменными состояния).

...