2017-10-13 11 views
2

Tomcat 서버에 기본 Vaadin 포틀릿이 배포되었습니다. 이 페이지는 몇 가지 기본 양식 요소로 구성됩니다. 예. TextFields & 콤보 상자입니다.페이지 새로 고침 페이지에서 새로 고침 Vaadin 포틀릿

입력란에 텍스트를 입력하거나 콤보를 선택하십시오. 브라우저에서 페이지를 열 때 F5 키를 누르면 페이지의 모든 데이터가 유지됩니다.

페이지 새로 고침시 Vaadin을 강제로 다시 빌드 할 수 있습니까?

+0

https://vaadin.com/docs/v8/framework/application/application-lifecycle.html 문서에 설명 된대로 '? restartApplication' 매개 변수를 사용해 보셨습니까? –

+0

@AxelMeier 프로덕션 환경에서 작동하는 방법을 잘 모르겠습니다. – Jay

+0

나는 그 질문을 오해했다고 생각한다. 문제는 개발하는 동안 페이지를 새로 고칠 수있는 방법을 찾는 것이라고 생각했습니다. –

답변

1

Vaadin이 제공하는 PortletListener 인터페이스를 사용하여 과거에이를 달성했습니다.

페이지 구성 방법에 따라 다릅니다. 이 기본 예제 당신을 도울 수 있습니다 : 당신은 F5를 명중 할 때

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) { 
    }  
} 

는 한마디로, 당신은 handleRenderRequest 방법을 입력 할 수 있습니다. 따라서 사용자 지정 방법을 사용하여 필요에 맞게 페이지를 다시 작성할 수 있습니다.

이 정보가 도움이되기를 바랍니다.

+0

이것은 정확히 내가 찾고있는 것입니다. 고맙습니다! – David