this question에 주석으로 게시하려했으나 충분한 담당자가 없으며 다른 방법을 찾지 못했지만 새로운 질문을 던집니다.이미지를 JSF 빈에서 Applet으로 전달하십시오.
어쨌든, 난 skuntsel 쓴 솔루션을 시도했지만 뒤로 : (나는이 JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), functionCall)
처럼라고 그래서 내가 icefaces를 사용하고) 나는 이미지를 인코딩 및 자바 스크립트 방법 빈에서 보냈습니다. 애플릿에서 인코딩 된 문자열을 얻었지만 해독하려고하면 아무 일도 일어나지 않고 그 뒤에 오는 코드는 도달 할 수 없습니다.
나는 뭔가를 놓친가요? 미리 감사드립니다!
편집 : 여기에 제가 사용하고있는 코드가 있습니다. 빈에서
: (버튼 클릭에 의해 트리거 방법) 자바 스크립트에서
BufferedImage originalImage = acquireImage();
byte[] imageInByte = null;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
ImageIO.write(originalImage, "png", baos);
baos.flush();
imageInByte = baos.toByteArray();
baos.close();
} catch (IOException e) {
e.printStackTrace();
}
String imageAsString = Base64.encodeBase64String(imageInByte);
JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), functionCall);
: 애플릿에서
function getEncodedImage(image){
var applet = document.getElementById("Applet");
applet.decodeImage(image);
}
:
public void decodeImage(String image) {
System.out.println(image); //works
byte[] imageByteArray = Base64.decodeBase64(image);
System.out.println("something"); //doesn't print anything
InputStream is = new ByteArrayInputStream(imageByteArray);
try {
BufferedImage img = ImageIO.read(is);
ImageIO.write(img, "png", new File("D:/image.png"));
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
당신의 문제는 명확하지 않다. 컨텍스트를 확장하고 질문에 코드를 추가하십시오. 그리고 네, 당신이 언급 한 대답에서 논리를 되돌립니다. – skuntsel
코드 추가 : – v30