java param request_java-将@RequestParam作为列表是不可能的吗?

我有一个像这样的控制器:

@RequestMapping(value="/selectTimeSpaceBusRunList.do")

public ModelAndView selectTimeSpaceBusRunList(Model model, HttpServletRequest request,

@RequestParam("search_date") String search_date,

@RequestParam(value="compid", required=false, defaultValue="") String compid,

@RequestParam(value="routeid", required=true) String routeid,

@RequestParam(value="busList", required=true) List busList)

{

ModelAndView mv = new ModelAndView();

Map> resultMap = new HashMap>();

try {

TbDmhTmspaceChartVO vo = new TbDmhTmspaceChartVO();

search_date = search_date.replaceAll("-", "");

vo.setSearch_start_date(search_date + "000000");

vo.setSearch_end_date(search_date + "235959");

vo.setCompid(compid);

vo.setRouteid(routeid);

vo.setBusList(busList);

List resultList = runService.selectTimeSpaceBusRunList(vo);

resultMap.put("resultList", resultList);

} catch (Exception e) {

logger.error("##selectTimeSpaceBusRunList exception " + e.toString());

}

mv.addAllObjects(resultMap);

mv.setViewName("jsonView");

return mv;

}

我有这样的VO:

public class TbDmhTmspaceChartVO {

private String run_enddt; // date yes 1

private String busid; // number(9,0) yes 2

private String run_startdt; // date yes 3

private String routeid; // number(9,0) yes 4

private String compid; // number(6,0) yes 5

private String carregno; // varchar2(12 byte) yes 6

private String runord; // number(4,0) yes 7

private String start_pathseq; // number(5,0) yes 8

private String end_pathseq; // number(5,0) yes 9

private String total_bstopcnt; // number(10,0) yes 10

private String seq_list; // varchar2(4000 byte) yes 11

private String node_list; // varchar2(4000 byte) yes 12

private String hms_list; // varchar2(4000 byte) yes 13

private String coll_list; // varchar2(4000 byte) yes 14

private String cross_pass_cnt; // number(10,0) yes 15

private String seq_list_1; // varchar2(4000 byte) yes 16

private String node_list_1; // varchar2(4000 byte) yes 17

private String hms_list_1; // varchar2(4000 byte) yes 18

private String coll_list_1; // varchar2(4000 byte) yes 19

private String bstop_dep_cnt; // number(10,0) yes 20

private String seq_list_3; // varchar2(4000 byte) yes 21

private String node_list_3; // varchar2(4000 byte) yes 22

private String hms_list_3; // varchar2(4000 byte) yes 23

private String coll_list_3; // varchar2(4000 byte) yes 24

private String search_start_date;

private String search_end_date;

private List busList;

// getters and setters...

public List getBusList() {

return busList;

}

public void setBusList(List busList) {

this.busList = busList;

}

}

对于我发送的数据是:

busList: ["7211342", "7015067"]

compid: "166001"

routeid: "165000056"

search_date: "2017-11-06"

我的ajax电话是这样的:

$.ajax({

type: "POST",

url: "./run/selectTimeSpaceBusRunList.do",

data: {

search_date : input_date,

compid : $("#busCompany").val(),

routeid : $("#busRoute").val(),

busList : selected_bus_list

},

dataType : "json",

beforeSend: null,

success: success,

error: null

});

当ajax调用完成时,它以如下错误结束:

org.springframework.web.bind.MissingServletRequestParameterException: Required List parameter 'busList' is not present

因此@RequestParam(value =“ busList”,required = true)List< String> busList),但找不到该解决方案.

我的问题是:

>是否无法通过@RequestParam获取List变量?

>如果不可能,还有其他方法可以获取List变量吗?

>是否可以一次获取DTO变量?

问候,

更新

我更改了@RequestParam(value =“ busList”,required = true)List< String>将list< String>转换为@RequestParam(value =“ busList”,required = false). busList),现在工作正常.所以我认为问题出在busList的发送方式不正确.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值