카테고리 없음

다른 위켓 페이지에서 동일한 엑셀 파일 다운로드

기록만이살길 2021. 2. 19. 01:15
반응형

다른 위켓 페이지에서 동일한 엑셀 파일 다운로드

질문(문제점):

wicket 1.x를 wicket 8.x로 마이그레이션했습니다.

Excel 파일 다운로드를 위해 아래 코드를 추가했지만 Excel 다운로드의 다른 모든 페이지에서 첫 번째 다운로드 파일을 가져옵니다.

ResourceLink<Object> excelLink =  new ResourceLink<>("excel", new ResourceReference("downloadExcel") {
            private static final long serialVersionUID = 1L;

            @Override
            public IResource getResource() {
                byte [] exBytes = null;
                try {
                    exBytes = new byte[0]; // Some excel file into byte format
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return new ByteArrayResource(fileFormat.getContextType(), exBytes, fileName);
            }
        });
excelLink.setOutputMarkupId(true);
excelLink.add(new Label("excelLabel", new ResourceModel("excelLabel")));
return excelLink;

응용 프로그램의 모든 페이지에있는 모든 Excel 파일의 이름이 같은 모든 페이지에서 동일한 ResourceLink ID "excel"을 가진 다른 모든 페이지에서 동일한 Excel 다운로드 논리를 사용하고 있습니다.

캐시를 유지하는 경우 각 페이지에서 올바른 Excel 파일을 다운로드하기 위해 캐시를 어떻게 지울 수 있습니까?

이 문제를 해결하는 데 도움을 줄 수있는 사람이 있으면 더 감사하겠습니다.

해결방안:

위의 코드는 Excel 파일을 반환하는 데 잘 작동합니다. 여기에서 Excel 파일 이름이 이전 버전의 Wicket에서 구현되었으며 이전에 잘 작동했던 애플리케이션의 모든 페이지에서 Excel 파일 이름이 동일한 문제를 발견했습니다. 그러나 1.x에서 8.x 버전으로 Wicket 마이그레이션 후 다운로드 Excel 파일을 클릭하면 이전에 다운로드 한 Excel 파일이 반환됩니다. 이제 Excel 다운로드를 위해 각 페이지에 다른 파일 이름을 유지하기 위해 파일 이름에 타임 스탬프를 추가했습니다.

예 : 파일 이름이 "UserData.xls"이전이고 이제 파일 이름 "UserData_10022021_021311.xls"(UserData_ddMMyyyy_HHmmss.xls)에 타임 스탬프를 추가 한 후. 이것은 내 사용 사례에 대한 내 문제를 해결합니다.

같은 문제에 직면 한 사람에게도 도움이되기를 바랍니다.

65834584
반응형