我有一個基本的Vaadin Portlet部署在Tomcat服務器上。該頁面由幾個基本的表單元素組成。 IE瀏覽器。 TextFields & ComboBoxes。刷新頁面上的Vaadin Portlet
如果我在字段中輸入文本/在組合上進行選擇。當我在瀏覽器中打開頁面時按F5時,它將保留頁面上的所有數據。
有沒有辦法強制Vaadin重新刷新頁面?
我有一個基本的Vaadin Portlet部署在Tomcat服務器上。該頁面由幾個基本的表單元素組成。 IE瀏覽器。 TextFields & ComboBoxes。刷新頁面上的Vaadin Portlet
如果我在字段中輸入文本/在組合上進行選擇。當我在瀏覽器中打開頁面時按F5時,它將保留頁面上的所有數據。
有沒有辦法強制Vaadin重新刷新頁面?
我以前使用Vaadin爲您提供的PortletListener界面實現了這一點。
取決於您建立頁面的方式。這個基本的例子可以幫助你:
public class MyUI extends UI implements PortletListener {
private static final long serialVersionUID = -1708010797368609962L;
private VerticalLayout content = new VerticalLayout();
@Override
protected void init(VaadinRequest request) {
VaadinPortletSession session = (VaadinPortletSession) VaadinPortletSession.getCurrent();
session.addPortletListener(this);
content.addComponent(new MyCustomScreen());
setContent(content);
}
private void reloadPage() {
content.removeAllComponents();
content.addComponent(new MyCustomScreen());
}
@Override
public void handleRenderRequest(RenderRequest request, RenderResponse response, UI uI) {
accessSynchronously(this::reloadPage);
}
@Override
public void handleActionRequest(ActionRequest request, ActionResponse response, UI uI) {
}
@Override
public void handleEventRequest(EventRequest request, EventResponse response, UI uI) {
}
@Override
public void handleResourceRequest(ResourceRequest request, ResourceResponse response, UI uI) {
}
}
總之,當你點擊F5時你會輸入handleRenderRequest方法。因此,您可以使用自己的自定義方法根據需要重新構建頁面。
我希望這會有所幫助。
這正是我所期待的。謝謝! – David
您是否嘗試過??restartApplication'參數,如文檔https://vaadin.com/docs/v8/framework/application/application-lifecycle.html中所述? –
@AxelMeier我不知道在生產環境下工作的效果如何 – Jay
我明白了。我想我誤解了這個問題。我認爲這個問題是尋找一種方法來在開發時強制頁面刷新。 –