1

所以我有以下问题。我有一个映射到“/reservationQuery/*”的控制器。当我继续使用“delete_1”方法的 url 时,它可以工作,但是当我尝试继续使用“delete_2”方法时,它表示该 URI 没有映射。但是为什么会这样呢?我的 ReservationQueryController 是否应该映射所有以 /reservationQuery/ 开头的 URI?

如果我想使用第二个 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";
}




}
4

2 回答 2

3

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

所以发生的事情是,在删除您的 URL 时,您的 URL 将以 /reservationQuery/reservationQuery/ 开头。

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

于 2014-08-14T08:22:22.310 回答
2

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

于 2014-08-14T08:16:38.600 回答