【发布时间】:2026-01-23 20:20:10
【问题描述】:
我用表单声明控制器。但是当我使用 Delete url 时,捕获 404 错误
我有一张带代码的表格:
<c:forEach items="${model.books}" var="book">
<tr align="left" height="100%">
<td>${book.name}</td>
<td>${book.description}</td>
<td>${book.year}</td>
<td></td>
<%--<td>${book.authorNames}</td>--%>
<sec:authorize access="hasRole('ROLE_ADMIN')">
<td>
<a href="${pageContext.request.contextPath}/BookList.vw/${book.id}">Delete</a>
<a href="${pageContext.request.contextPath}/EditBook.vw/${book.id}">Edit</a>
</td>
</sec:authorize>
</tr>
</c:forEach>
还有我的控制器:
@Controller
@RequestMapping("/BookList.vw")
public class BookListController {
@Autowired
private IBookService bookService;
public String getModelName() {
return "BookList";
}
@RequestMapping(value = "/", method = RequestMethod.GET)
protected ModelAndView openMain() throws Exception {
Map<String, Object> model = new HashMap<String, Object>();
List<Book> books = bookService.listBooks();
model.put("books", books);
return new ModelAndView(getModelName(), "model", model);
}
@RequestMapping(value = {"/delete"}, method = RequestMethod.POST)
public ModelAndView delete(@RequestParam("id") Integer id) throws Exception {
bookService.removeBook(id);
return new ModelAndView(getModelName());
}
}
通过第二个 URL,我也捕获了 404 错误。我不明白为什么。 EditBook 控制器:
@Controller
@RequestMapping("/EditBook.vw")
public class EditBookController{
@Autowired
private IBookService bookService;
@Autowired
private IAuthorService authorService;
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
protected ModelAndView openMain(@PathVariable Integer id) throws Exception {
Map<String, Object> model = new HashMap<String, Object>();
List<Book> books = bookService.listBooks();
Book book = new Book();
for (Book book1 : books) {
if(book1.getId() == id)
book = book1;
}
model.put("book", book);
return new ModelAndView("EditBook", "model", model);
}
}
我尝试在 POST、Get 和其他之间更改它。帮帮我?请
【问题讨论】:
标签: forms spring-mvc servlets controller