路径变量不映射Spring MVC



所以我有以下问题。我有一个控制器,我映射到"/reservationQuery/*"。每当我进入"delete_1"方法的url时,它就会工作,但是每当我尝试进入"delete_2"方法时,它都会说该URI没有映射。但为什么会这样呢?所有以/reservationQuery/开头的URI都应该由我的ReservationQueryController映射吗?

如果我想使用第二个URI进行删除,我是否必须制作另一个控制器并将其映射到/reservationQuery/delete/* ?

@Controller
@RequestMapping("/reservationQuery/*")
public class ReservationQueryController{
private ReservationService reservationService;
@Autowired
public ReservationQueryController(ReservationService reservationService) {
    this.reservationService = reservationService;
}

@RequestMapping(value="/reservationQuery/{reservationID}", method=RequestMethod.GET)
public String delete_1(@PathVariable("reservationID") int reservationID, Model model){
    reservationService.deleteReservation(reservationID);
    return "reservationQuery";
}

@RequestMapping(value="/reservationQuery/delete/{reservationID}",     method=RequestMethod.GET)
public String delete_2(@PathVariable("reservationID") int reservationID, Model model){
    reservationService.deleteReservation(reservationID);
    return "reservationQuery";
}


}

您可以删除方法级别中"reservationQuery"的额外值,因为您已经在控制器中映射了"reservationQuery",这是类级别。

在删除URL时你的URL将以/reservationQuery/reservationQuery/开始

我认为这就是错误的原因应该是HTTP错误404

你应该用"/reservationQuery"映射你的控制器,你的方法delete_1应该用"/{reservationID}"映射,方法delete_2应该用"/delete/{reservationID}"映射。不需要在方法中重复控制器映射。

最新更新