繁体   English   中英

从数组对象在javascript中创建数组,然后在servlet中由request.setAttribute传递

[英]creating array in javascript from array object pass in by request.setAttribute in servlet

我正在尝试创建一个动态照相馆,该照相馆从mySQL中检索照片的位置。 将位置存储到名为“ private String location; ”的照片对象中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很陌生,我一直在寻找类似的示例或教程,但找不到任何相关的示例或教程。 请帮帮我,非常感谢您的宝贵时间。

我从您的问题中得到的是照片是一个类的对象,而位置是该类的成员变量。

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

listphoto对象或location成员变量的数组列表。

另外,您正在Java中设置属性,并且希望该列表由javascript保存。 那么在这种情况下,您可以检查JSON以保存您的java对象并将其转换为javascript对象。

您将获得类似于{imagearray:[{"path_to_image":"path_to_image","optional_link":"optional_link","optional_linktarget":"optional_linktarget","optional_textdescription"}]} JSON字符串

您可以按照以下顺序轻松地完成操作:

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

现在,让我们继续执行该列表。

从数据库获取结果

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

创建一个JSON对象

当然,您可以自己执行此操作,但是更好的主意是采用专门的库将Java对象转换为JSON对象。 例如,您可以使用Gson库,该库是该类型转换的已知库。 最后,将通过调用String photosJSON = new Gson().toJson(photos);获得一个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以及从数据库中photosJS的列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM