所以我有以下问题。我有一个控制器,我映射到"/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}"
映射。不需要在方法中重复控制器映射。