Her*_*nal 2 java jsf applet bufferedimage jsf-2
我正在使用一个Web应用程序,其中有一个Java Applet,用于将图像从wacom设备捕获到RenderedImage对象中.applet本身嵌入到JSF 2.0页面中.
我需要将创建RenderedImage的Applet传递给JSF支持bean,以便它成为User对象的一部分.我的支持bean是视图范围.
我真的迷失了.我一直在寻找一个如何实现这一目标的好例子.我应该使用JSObject,还是应该将图像发送到servlet?
你能就如何解决这个问题提出一些建议吗?
您的问题可以分为以下几个子步骤:
BufferedImage保存其数据的数据创建一个字节数组;<h:commandButton>'s onclick;也就是说,让我们继续实施该议程.
在你的applet中,你将有一个方法可以做点(1) - (4).获得图像后,以通常的方式调用它:
Java Applet方法:
public void processImage() throws IOException, JSException {
BufferedImage image = createBufferedImage();//the way you get the image
/* point 1 */
ByteArrayOutputStream bs = new ByteArrayOutputStream();
ImageIO.write(image, "png", bs);
bs.flush();
byte[] imageByteArray = bs.toByteArray();
bs.close();
/* point 1 */
String imageAsString = Base64.encodeBase64String(imageByteArray);//point 2
/* points 3-4 */
JSObject window = JSObject.getWindow(this);
window.call("writeImageValue", new Object[] {imageAsString});
/* points 3-4 */
}
Run Code Online (Sandbox Code Playgroud)
JSF页面(表单和JavaScript):
<script>
function writeImageValue(imageValue) {
document.getElementById('image').value = imageValue;//point 3
document.getElementById('image-form:submit').click();//point 4
}
</script>
<h:form id="image-form">
<input type="hidden" id="image" name="image" />
<h:commandButton id="submit" action="#{imageSubmitBean.submitImage}" style="display:none" />
</h:form>
Run Code Online (Sandbox Code Playgroud)
JSF托管bean:
@ManagedBean
@RequestScoped
public class ImageSubmitBean {
@ManagedProperty("#{param.image}")//point 5
private String imageAsString;//getter+setter
@ManagedProperty("#{userBean}")//your view scoped bean
private UserBean userBean;//getter+setter
public String submitImage() throws IOException {
byte[] imageByteArray = Base64.decodeBase64(imageAsString);//point 6
/* point 7 */
InputStream is = new ByteArrayInputStream(imageByteArray);
BufferedImage image = ImageIO.read(is);
is.close();
userBean.setUserImage(image);//update your view scoped bean
/* point 7 */
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1864 次 |
| 最近记录: |