好的,我知道如何在C#中做到这一点.
它很简单:
Convert.ToBase64String(byte[])
and Convert.FromBase64String(string) to get byte[] back.
Run Code Online (Sandbox Code Playgroud)
我怎么能用Java做到这一点?
我的ajax调用将从服务器获取一个图像作为字节数组.
如何在网页上使用javascript显示图像(在字节数组中)?
我想显示的保存在数据库中的图像字节StreamedContent中<p:graphicImage>,如下所示:
<p:graphicImage value="#{item.imageF}" width="50" id="grpImage" height="80"/>
Run Code Online (Sandbox Code Playgroud)
private StreamedContent content; // getter and setter
public StreamedContent getImageF() {
if (student.getImage() != null) {
InputStream is = new ByteArrayInputStream(student.getImage());
System.out.println("Byte :"+student.getImage());
content = new DefaultStreamedContent(is, "", student.getStuID());
System.out.println("ddd ------------------------------- " + content);
return content;
}
return content;
}
Run Code Online (Sandbox Code Playgroud)
这将返回一个空白图像.这是怎么造成的,我该如何解决?
标准输出打印以下内容:
INFO: Byte :[B@a2fb48
INFO: ddd ------------------------------- org.primefaces.model.DefaultStreamedContent@b0887b
INFO: Byte :[B@a2fb48
INFO: ddd ------------------------------- org.primefaces.model.DefaultStreamedContent@1d06a92
INFO: Byte :[B@d52f0b
INFO: ddd ------------------------------- org.primefaces.model.DefaultStreamedContent@39a60
INFO: Byte :[B@d52f0b
INFO: ddd ------------------------------- org.primefaces.model.DefaultStreamedContent@8c3daa …Run Code Online (Sandbox Code Playgroud) 我创建了一个页面,我想从JSF页面获取JSON响应,但是当我尝试获取页面时,它会向我显示整个html页面.
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<title>Facelet Title</title></head><body>
[{"value": "21", "name": "Mick Jagger"},{"value": "43", "name": "Johnny Storm"},{"value": "46", "name": "Richard Hatch"},{"value": "54", "name": "Kelly Slater"},{"value": "55", "name": "Rudy Hamilton"},{"value": "79", "name": "Michael Jordan"}]
</body></html>
Run Code Online (Sandbox Code Playgroud) 我无法确定将数据从Java支持/托管bean传递到jQuery/Javascript组件(如Highcharts)的最佳方法,以便我的Web应用程序以动态,实时的方式生成/显示数据.我在Java方面的表现相当不错,但我对JavaScript/jQuery的了解非常有限,这显然是我倒下的地方.到目前为止,我已经阅读过,最好的方法是在我的Web应用程序上Ajax化一个隐藏字段并传递一个JSON对象或字符串?在它中,然后将该值传递给我的JS组件.
首先,这似乎有点费力,因为我会更新JSON数据进行Ajax调用,然后调用setInterval来重新读取JS组件中的数据?我希望我能将数据直接传递给JS组件......
无论哪种方式,有人可以坚定我的知识,并告诉我一个良好的尝试和测试方法,如果不同于上面...指南/演示也将受到大力赞赏!
如果这会影响建议的方法,我也使用Primeface的2.2.1?
干杯
盟友
更新:
代码如下,但我只是想描述一下我想要快速实现的目标:实际上我正在尝试使用来自我的支持bean的简单count ++函数来实现动态Highcharts图表.显然,我将使用实时源提供此数据,但目前我只是想根据我的JSF支持bean更改信息来使Highcharts工作.
这是我的简单计数函数和转换为JSON(我不确定JSON方法是否真的有必要,因为只传递了1个值(int),但我想保留这个方法,因为我相信我会使用更多广泛地在网络应用程序的其他部分):
public class TestBean {
private int output;
public TestBean() {
output = 1;
}
public int getOutput() {
return output;
}
public void setOutput(int output) {
this.output = output;
}
public void update() {
setOutput(getOutput() + 1);
}
public void prepareChartDate() {
// Produce you JSON string (I use Gson here)
RequestContext reqCtx = RequestContext.getCurrentInstance();
reqCtx.addCallbackParam("chartData", new Gson().toJson(output));
}
}
Run Code Online (Sandbox Code Playgroud)
Highcharts外部JS文件,值得注意的是,在我开始追加从JSF Beans获得的值之前,我已经在图表底部维护了系列函数来构建/填充图形:
Highcharts.setOptions({
global: {
useUTC: false
}
});
var …Run Code Online (Sandbox Code Playgroud)