ฉันมีคอนโทรลเลอร์ 2 ตัว:
a)
@Override
@RequestMapping(value = "/portal/form.html", method = RequestMethod.GET)
@Transactional
public String form(final Message message, final Model model) {
return "portal/form";
}
b)
@Override
@RequestMapping(value = "/portal/form.html", method = RequestMethod.POST)
@Transactional
@PreAuthorize("#message.id!=null ? hasPermission(#message, 'WRITE') : hasRole('ROLE_ADMIN')")
public String form(@Valid final Message message, final Model model) {
if (message.getId() == null) {
someService.save(message);
AclManager.create(message);
} else {
someService.update(message);
AclManager.update(message);
}
return "redirect:result.html";
}
ก่อนที่ฉันจะใส่คำอธิบายประกอบด้านความปลอดภัยในคอนโทรลเลอร์ "b" ทุกอย่างเป็นไปด้วยดี ตอนนี้เมื่อฉันไปที่หน้าตัวควบคุม "a" และกรอกแบบฟอร์ม ให้คลิกปุ่มที่ทำให้ตัวควบคุม "b" และฉันได้รับ "สถานะ HTTP 405 - ไม่รองรับวิธีการร้องขอ 'POST'" เหตุใดสิ่งนี้จึงเกิดขึ้นและจะแก้ไขได้อย่างไร
UPD:ฉันได้ช่วยเพิ่ม RequestMethod.POST ลงในตัวควบคุมการเข้าสู่ระบบ