gpt4 book ai didi

java - 如何使用zk的定时器在没有一个组件的情况下刷新所有页面

转载 作者:行者123 更新时间:2023-11-30 08:08:55 27 4
gpt4 key购买 nike

我正在使用计时器刷新我的所有页面 zul。是否可以在没有一个组件("progressmeter")的情况下刷新所有页面?

<progressmeter style="span.z-progressmeter-image" 
value="@load(item.progres)" width="110px" height="16px">
</progressmeter>

最佳答案

注意:假设您要刷新整个页面(桌面)。

您可以刷新整个页面,而不会丢失 <progressmeter> 的状态,只需在 session 中维护 Item var,每次重新加载页面时,您都可以恢复 ModelView 类中的最后状态,例如:

public class MyVm{
....
private Item item;

@Init
public void initMyVM(){
Item item = Sessions.getCurrent().getAttribute("myItem");
if(item == null)
//do normal intialization
}
public Item getItem() {
return item;
}

public void setItem(Item item) { // or wherever it changes
this.item = item;
Session session = Sessions.getCurrent();
session.setAttribute("myItem", item); // or wherever it changes
}
@Command("onTimer")
pulic void comandRefresh(){
Executions.sendRedirect("");
}

....

}

现在您可以使用 Executions.sendRedirect(""); 刷新页面任何时候,您都不会丢失 <progressmeter/> 的状态。整个刷新必须考虑 @Init 上变量的初始化.

另一种方法是使用 @NotifyChange 通知与您的查看内容相关的所有其他变量的更改。

@Command("onTimer")
@NotifyChange({"redrawValue1","RedrawValue2","others"....})
pulic void comandRefresh(){
Executions.sendRedirect("");
}

这意味着与“redrawValue1”、“RedrawValue2”、“others”值相关的所有内容都将在 View 上更新。如果您需要强制重绘某些区域,您可以使用模板 Template并与虚拟机中的字段相关联,以便使用 @NotifyChange以同样的方式。

关于java - 如何使用zk的定时器在没有一个组件的情况下刷新所有页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30693147/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com