【问题标题】:How to get this value into custom arraylist in servlet?如何将此值放入 servlet 中的自定义数组列表中?
【发布时间】:2015-11-03 07:11:47
【问题描述】:

我已经完成了这个 ajax 代码来将数据从 jsp 发送到 servlet。

我在jsp中的ajax代码如下:

$(document).ready(function(){

$("#process").click(function(){

    console.log($("#processlist").val());

        $.ajax({

            url: "processtimesheet.do",
            type : 'POST',
            data : {processlist : $("#processlist").val()},
            success : function(response){
                alert(response);
                window.location.reload(true);
            }
        })
    });
});

JSP 中的值是从下面的 EL 中获取的。

    <input type="hidden" name="processlist" id="processlist" value="${timesheetList}">

我正在获取 servlet 中的值..

[com.manager.model.Timesheet@a2a87e, com.manager.model.Timesheet@e3eda6, com.manager.model.Timesheet@74c85, com.manager.model.Timesheet@130bc16]

如何将这些值转换回 List ?

【问题讨论】:

  • 您的意思是要列出的数组吗?
  • @px5x2 是的,我需要将该数组转换为列表。
  • 你可以使用Arrays.toList(array)
  • @px5x2 它将列表转换为 List。我希望将其转换为 List
  • 只需将其转换为 JSON。

标签: java ajax jsp servlets


【解决方案1】:

如果您在隐藏的输入元素附近右键单击并检查,您可以看到该输入实际上具有类似 com.manager.model.Timesheet@a2a87e、com.manager.model.Timesheet@e3eda6、com 的值。 manager.model.Timesheet@74c85, com.manager.model.Timesheet@130bc16 。数据不可用。

这意味着您将完整的对象嵌入到输入字段中。您可以改为使用/嵌入 Timesheet 类型的任何唯一字段并将该列表返回给 servlet。然后您可以确定在服务器端选择了哪个列表。

假设你在Timesheet类中有id字段,构造一个id列表:

<input type="hidden" name="processlist" id="processlist" value="${timesheetIdList}">

还有servlet:

Map<Integer, Timesheet> index = ...;// map (unique index) construction
List<Timesheet> listSelected = new ArrayList<>;
for(int i = 0; i<idarray.length; i++) {
  if(index.containsKey(idarray[i])) {
    listSelected.add(index.get(idarray[i]))
  }
}

【讨论】:

  • 如果我的时间表列表项没有 ID 怎么办?
  • 那么您必须提供一种独特的方式来在您的实际 POJO 和 html 值之间进行转换。这是一个选择问题。
猜你喜欢
  • 2021-09-09
  • 2015-08-05
  • 1970-01-01
  • 2017-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-03
相关资源
最近更新 更多