Je l'ai déjà fait par le passé en utilisant l'interface PortletListener que vous offre Vaadin. Selon la façon dont vous avez construit votre page.
Cet exemple de base peut vous aider:
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) {
}
}
En bref, vous allez entrer dans la méthode handleRenderRequest lorsque vous appuyez sur F5. Vous pouvez donc utiliser votre propre méthode personnalisée pour recréer la page selon vos besoins.
J'espère que cela aide.
Avez-vous essayé le paramètre '? RestartApplication' comme indiqué dans les documents https://vaadin.com/docs/v8/framework/application/application-lifecycle.html? –
@AxelMeier Je ne sais pas comment cela fonctionne pour un environnement de production – Jay
Je vois. Je pense que j'ai mal compris la question. Je pensais que la question était de chercher un moyen de forcer une page de rafraîchissement en cours de développement. –