假设我有:
@RequestMapping(params = "action=nuovoprodotto")
public ModelAndView nuovoProdotto(
@RequestParam(value = "page", required = false, defaultValue = "-1") int page,
@RequestParam(value = "action") String action,
@ModelAttribute Prodotto prod, HttpSession session)
throws Exception {
是否可以将此请求映射到喜欢的“action”参数的两个或三个值?
我尝试了很多方法,比如
@RequestMapping(params = "action=nuovoprodotto, action=salvaprodotto")
或
@RequestMapping(params = "action=nuovoprodotto|salvaprodotto")
但它们不起作用...如果我不能,除了为每个参数值组合编写一个处理程序之外,还有什么解决方案?
最佳答案
试试这个:
@RequestMapping(params = {"action=nuovoprodotto","action=salvaprodotto"})
params
属性实际上是 String[]
类型,但是注解可以让你写一个 String
来代替单个元素 String[]
,所以这两个是等价的:
@RequestMapping(params = {"action=nuovoprodotto"})
和
@RequestMapping(params = "action=nuovoprodotto")
引用:
更新:我的错,您可以在 Advanced @RequestMapping options 部分阅读。 , 多个参数用and、not or 组合,所以不能像上面指定的那样工作。
所以我想说你要做的就是创建一个具有几乎相同签名的别名方法:
@RequestMapping(params = "action=nuovoprodotto")
public ModelAndView nuovoProdotto(
@RequestParam(value = "page", required = false, defaultValue = "-1") int page,
@RequestParam(value = "action") String action,
@ModelAttribute Prodotto prod, HttpSession session)
throws Exception {
// some stuff here
}
@RequestMapping(params = "action=salvaprodotto")
public ModelAndView salvaProdotto(
@RequestParam(value = "page", required = false, defaultValue = "-1") int page,
@RequestParam(value = "action") String action,
@ModelAttribute Prodotto prod, HttpSession session)
throws Exception {
return nuovoProdotto(page, action, prod, session);
}
关于java - 如何在 Spring MVC 中的同一 @RequestMapping 中为参数映射不同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4877250/