Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在页面刷新时重新加载vaadinportlet_Java_Vaadin_Page Refresh - Fatal编程技术网

Java 在页面刷新时重新加载vaadinportlet

Java 在页面刷新时重新加载vaadinportlet,java,vaadin,page-refresh,Java,Vaadin,Page Refresh,我在Tomcat服务器上部署了一个基本的VaadinPortlet。页面由几个基本表单元素组成。即文本字段和组合框 如果我在字段中输入文本/在组合框中进行选择。当我在浏览器中打开页面时按F5键,它会保留页面上的所有数据 有没有办法强制Vaadin在页面刷新时重建 我过去使用Vaadin提供的界面实现了这一点 取决于您构建页面的方式。此基本示例可以帮助您: public class MyUI extends UI implements PortletListener { private

我在Tomcat服务器上部署了一个基本的VaadinPortlet。页面由几个基本表单元素组成。即文本字段和组合框

如果我在字段中输入文本/在组合框中进行选择。当我在浏览器中打开页面时按F5键,它会保留页面上的所有数据


有没有办法强制Vaadin在页面刷新时重建

我过去使用Vaadin提供的界面实现了这一点

取决于您构建页面的方式。此基本示例可以帮助您:

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方法。因此,您可以使用自己的自定义方法根据需要重新构建页面


我希望这会有所帮助。

您是否尝试过文档中所述的
?restartApplication
参数?@AxelMeier我不知道它在生产环境中的效果如何。我想我误解了这个问题。我认为问题在于寻找一种在开发过程中强制刷新页面的方法。这正是我想要的。谢谢你!