2015년 6월 18일 목요일

[vaadin] server side image load

여러가지 방법이 있다.

그중에서 쉬운 방법은 ,
// Find the application directory
String basepath = VaadinService.getCurrent()
                 .getBaseDirectory().getAbsolutePath();

// Image as a file resource
FileResource resource = new FileResource(new File(basepath +
                       "/WEB-INF/images/info16.png"));

Image image = new Image("", resource);

layout.addComponent(image);
layout.setComponentAlignment(image, Alignment.MIDDLE_RIGHT);

layout.addLayoutClickListener(new LayoutClickListener() {

@Override
public void layoutClick(LayoutClickEvent event) {
// TODO Auto-generated method stub
kanban.showHelpBoard(indicatorView);
}
});




그런데 문제가있다.

IE8.에서 이미지가 안 보인다...


망할...대체..왜 아직도 IE8을 쓰는가..
제발 사라져줘....


그래서 방법을 찾았다.




Embedded를 사용하는 것이다.


String explain = "" ;
// Find the application directory
String basepath = "http://"+Page.getCurrent().getLocation().getRawAuthority() ;

String filename = "/html/VAADIN/themes/valo/icons/";    // 서버 안에 들어있는 파일의 위치...


filename = filename + "ing.png"  ;


Embedded embedded = new Embedded() ;
embedded.setSource(new ExternalResource(basepath+filename + "?" + Calendar.getInstance().getTime().getTime()));




------------

휴 -




댓글 없음:

댓글 쓰기