0

我正在尝试创建一个从 mySQL 检索照片位置的动态照片库。将位置存储到名为“ private String location;”的照片对象中,将有一个 ArrayList 来保存所有不同的照片。之后,servlet会转发到一个jsp页面

request.setAttribute("list", list);
request.getRequestDispatcher("car.jsp").forward(request, response);

我有一个用于照片库的 java 脚本,其中包含 ["path_to_image"、"optional_link"、"optional_linktarget"、"optional_textdescription"] 的数组。

imagearray: [
["path_to_image", "optional_link", "optional_linktarget", "optional_textdescription"],
["a.jpg", "www.a.com", "", ""]
],

我想从从 servlet 传入的列表中的对象中检索位置,并将其转换为图像数组,以便我的照片库正常工作。

我对javascript很陌生,我一直在寻找类似的例子或教程,但我找不到任何相关的。请帮帮我,非常感谢您的宝贵时间。

4

2 回答 2

0

您想要做的事情可以通过以下顺序简单地实现:

  1. 从数据库中获取结果。
  2. 创建 JSON 对象。
  3. 将该对象设置为请求属性。
  4. 将 JSON 分配给 JavaScript 变量。

现在,让我们继续做那个列表。

从数据库中获取结果

你应该有一个getPhotoList()返回类型的方法List<Photo>。我想你的Photo班级有你想导出到 JavaScript 的字段。最后,您将List<Photo> photos初始化。

创建一个 JSON 对象

你当然可以自己做,但更好的主意是使用一个专门的库来将 java 对象转换为 JSON 对象。例如,您可以使用Gson库,它是用于该类型转换的已知库。最后,您将拥有一个 JSON 对象,通过调用String photosJSON = new Gson().toJson(photos);.

将 JSON 设置为请求属性并执行转发

这里的标准操作。

request.setAttribute("photos", photosJSON);
request.getRequestDispatcher("car.jsp").forward(request, response);

将 JSON 分配给 JavaScript 变量

在您的 JSP 代码中,在一个<script>块中,具有以下行:

var photosJS = JSON.parse(${photos});

最后,您将拥有一个 JS 变量photosJS,其中包含从数据库中获取的列表。

于 2013-05-04T18:27:16.420 回答
0

我从您的问题中得到的是 photo 是一个类的对象,而 location 是该类的一个成员变量。

request.setAttribute("list", list); request.getRequestDispatcher("car.jsp").forward(request, response);

listphoto对象或location成员变量的 Arraylist。

您也在 java 中设置属性,并且您希望该列表由 javascript 保存。然后在这种情况下,您可以检查 JSON 是否保存您的 java 对象并转换为 javascript 对象。

你会得到类似于 JSON 的字符串 {imagearray:[{"path_to_image":"path_to_image","optional_link":"optional_link","optional_linktarget":"optional_linktarget","optional_textdescription"}]}

于 2013-05-04T16:00:21.917 回答