java - 如何在 Spring MVC 中的同一 @RequestMapping 中为参数映射不同的值?

标签 java spring spring-mvc

假设我有:

@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/

相关文章:

java - Spring RestController 产生 charset=UTF-8

java - 使用 Jackson 注释在 POJO 中序列化和解包 Map 对象

java - 查询变量替换错误

带有嵌套循环删除调用的 java.util.ConcurrentModificationException

java - 如何在多个私有(private)连接位置更快地构建依赖项

java - 在二维排序数组中搜索元素

java - Spring,在 Hibernate 中创建当前日期的注释?

java - 动态添加 tomcat 到集群 - 必须手动调整 ehcache xml 配置文件?

java - NamedParameterJdbcTemplate - 从中​​选择 *

java - 使用 @RequestParam 发布 JSON