我有一个Struts2 Web应用程序,其中我的主页在从Java类获取的表中显示数据。反过来,Java类从我的数据库中获取数据。现在,如果在加载页面后将新记录输入数据库,我必须手动刷新页面以在表中查看它们。有什么办法可以让page / div自动刷新吗?
这是我的表格代码
<display:table id="reqtablenew" name="requestlist" requestURI="" pagesize="6" class = "newreqtable">
<display:column title="Select" >
<input type="radio" name="reqradio" />
</display:column>
<display:column title="ID" property="requestid"></display:column>
<display:column title="Requestor" property="requestor"></display:column>
<display:column title="Approver" property="approver"></display:column>
<display:column title="Status" property="status"></display:column>
<display:column title="Product" property="product"></display:column>
<display:column title="Version" property="version"></display:column>
<display:column title="Source Path" property="source"></display:column>
<display:column title="Destination Path" property="destination"></display:column>
</display:table>
代码简介
requestlist - Java类中的ArrayList,用于存储数据库中的对象 properties:ArrayList对象的单个成员
我没有使用Session。任何关于如何完成这项任务的想法都会非常有帮助。我在我的应用程序的其余部分使用了Ajax,但我无法弄清楚如何在这里使用它。
答案 0 :(得分:1)
创建一个只返回此表的操作。
定期对此动作进行ajax调用&amp;得到回应&amp;嵌入你的DOM。
如果你在应用程序的其他部分使用了ajax,它就是一样的。
<强>动作强>
class MyAction{
public String execute(){
//create all lists required for table
return SUCCESS;
}
}
<强> struts.xml中强>
<action name="tableaction" class="actions.MyAction">
<result>/table.jsp</result>
</action>
<强> Table.jsp 强>
//the display tag code
Javascript代码:
function ajaxCall(){
$.ajax({
url:"tableaction",
success:function(data){
$("targetdiv").html(data);
}
});
}
setInterval(ajaxCall(),3000);
以上代码只是一个示例UNTESTED代码,用于说明如何实现它。