我开发了一个用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>
这就是我完成重定向的方法。 我确信必须有一个更优雅和优化的解决方案 任何想法?
答案 0 :(得分:0)
在作为ajaxUrl目标的动作上使用struts2-json-plugin。我不使用sx标签,我只使用JS(使用jQuery,普通库不使用任何struts2插件)。任何方式使用JS每隔2秒使用JS(或选择的框架)异步调用您的操作,您将获取作为json字符串的url,然后如果字符串不为空(或者您,则将重定向到该新url)也许可以返回许多变量,可能包含在DB中找到的一些条件并在页面上显示它们并根据这些状态变量重定向。