我正在尝试创建一个动态照片库,从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传入的列表中的对象中检索位置,并将其转换为imagearray,以使我的照片库能够正常工作。
我是javascript的新手,我一直在寻找类似的示例或教程,但我找不到任何相关的。请帮帮我,非常感谢你的时间。
答案 0 :(得分:0)
我从你的问题得到的是照片是一个类的对象,location是该类的成员变量。
request.setAttribute("list", list);
request.getRequestDispatcher("car.jsp").forward(request, response);
这是list
是photo
对象或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"}]}
答案 1 :(得分:0)
您可以通过以下顺序简单地完成您想要做的事情:
现在,让我们继续做那个清单。
您应该有一个返回getPhotoList()
的{{1}}类型的方法。我想您的List<Photo>
类包含您要导出到JavaScript的字段。最后,您将Photo
初始化。
您当然可以自己做,但更好的想法是使用专门的库将Java对象转换为JSON对象。例如,您可以使用Gson库,这是一种用于该类型转换的已知库。最后,通过调用List<Photo> photos
,您将拥有一个JSON对象。
这里的标准操作。
String photosJSON = new Gson().toJson(photos);
在您的JSP代码中,在request.setAttribute("photos", photosJSON);
request.getRequestDispatcher("car.jsp").forward(request, response);
块中,包含以下行:
<script>
最后,您将拥有一个JS变量var photosJS = JSON.parse(${photos});
,其中包含您从数据库中获得的列表。