刷新页面

时间:2017-10-13 14:18:36

标签: java vaadin page-refresh

我在Tomcat服务器上部署了一个基本的Vaadin Portlet。该页面包含一些基本表单元素。 IE浏览器。 TextFields&组合框。

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

有没有办法迫使Vaadin在页面刷新时重建?

1 个答案:

答案 0 :(得分:1)

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

我希望这会有所帮助。