我正在研究在GET请求中为同一参数名传递多个值的正确方法是什么.
我见过这样的网址:
http://server/action?id=a&id=b
Run Code Online (Sandbox Code Playgroud)
我看过这样的网址:
http://server/action?id=a,b
Run Code Online (Sandbox Code Playgroud)
我的理解是第一个是正确的,但我找不到任何参考.我查看了http规范,但是看不出有关如何构成URL的'query'部分的任何信息.
我不想要一个说"要么很好"的答案 - 如果我正在构建一个Web服务,我想知道这些方法中的哪一个是标准的,以便使用我的web服务的人知道如何为同一个名称传递多个参数.
那么,有人能指出我的官方参考资料来确认哪个选项是正确的吗?
假设单击了一个超链接,并使用以下参数列表触发了一个url myparam=myValue1&myparam=myValue2&myparam=myValue3.现在我如何@RequestParam在spring mvc中捕获所有参数?
我的要求是我必须捕获所有参数并将它们放在地图中.
请帮忙!
我是java和spring的新手.
我想要实现的是/tickets具有分页和排序的api端点.我做了它,它的工作原理.但也是我想做的是,如果返回所有门票的普通列表size,并page没有在查询参数指定的,所以在FE我可以使用选择框该列表.
我试图做的是getTickets在服务门面上实现并返回所有门票的列表.但我找不到如何检查Pageable是否设置的方法,因为它始终返回默认值(size = 20,page = 0)
//控制器
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<Page<TicketListItemResponseModel>> getTickets(Pageable pageable) {
logger.info("> getTickets");
Page<TicketListItemResponseModel> tickets = ticketServiceFacade.getTickets(pageable);
logger.info("< getTickets");
return new ResponseEntity<>(tickets, HttpStatus.OK);
}
Run Code Online (Sandbox Code Playgroud)
// TicketServiceFacade
public Page<TicketListItemResponseModel> getTickets(Pageable pageable) {
Page<Ticket> tickets = ticketService.findAll(pageable);
return tickets.map(new ConverterFromPagesToListItem());
}
public List<TicketListItemResponseModel> getTickets() {
List<Ticket> tickets = ticketService.findAll();
return tickets.stream()
.map(t -> modelMapper.map(t, TicketListItemResponseModel.class))
.collect(Collectors.toList());
}
Run Code Online (Sandbox Code Playgroud)
也许我完全错了?