想在JavaScript中传递包含类对象的ArrayList

3
我有一个ArrayList,其中包含Java Class的对象。我想将该列表传递给javascript,并想将对象中的数据填充到jsp中。ArrayList存在于jsp中。每个类对象只包含2个参数值。类名为'Certificate',它包含'certId'和'certName'。
<% 
 ArrayList getAllCertificateNamewithId=new ArrayList();
 getAllCertificateNamewithId=(ArrayList)mainMap.get("getAllCertificateNamewithIdMap");%>
<input type="button"  width="16" height="16"  onclick="fetchAndShow('<%=getAllCertificateNamewithId %>')" />

JavaScript

function fetchAndShow(certObj){
//How to fetch the list's each object  and cast to java class 'Certificate'
}

列表包含
[com.dto.Certificate@9b44a1, com.dto.Certificate@1b6b3ac]
3个回答

2

可以这样想:你使用Java + JSP来编写文本文件,然后将其发送到用户的浏览器中,其中JSP是一个简单的模板机制。

理论上,您可以实现自己的方法,将对象列表序列化为字符串,然后在客户端实现反序列化为任何数据结构。例如,您可以将列表编写为JSON。

但现在我倾向于问:您真的非常、非常、非常需要这样做吗?将服务器证书暴露给客户端是绝对不行的。


1
这不是正确的方式。仅仅因为内容在同一页中,它们不能直接交流。
Java在服务器端运行,而Javascript在客户端运行。客户端不会执行Java代码。
要将Java值发送到Javascript,您必须发起服务器请求。因此,服务器处理您的请求并将结果发送回Javascript。
简而言之,您需要发起服务器(AJAX)请求。

1

我不确定这样做是否正确,但值得一试。尝试使用GSON或JACKSON库将你的Java对象转换为JSON字符串。然后,我认为你可以在JavaScript代码中使用该JSON字符串数据,并在任何需要的地方获取certID和certName。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接