0

我试图弄清楚如何通过 URL 将同一类的两个不同参数传递给控制器​​中的处理程序方法。例如,给定一个带有“id”参数的“Foo”类(我只是说一个参数以使其简单,但从一个有负载的类中考虑),控制器的代码如下所示:

@Controller(value = "customerCareRemoteService")
public class CustomerCareRemoteServiceImpl {

// Othe methods/requests

    @RequestMapping(value = "/" + "prueba" , method = RequestMethod.GET)
    public @ResponseBody String prueba(Foo pFoo1, Foo pFoo2) {
        //stupid and not interesting code
        String answer = "pFoo1.id is " + pFoo1.id + ". pFoo2.id is " + pFoo2.id.";
        System.out.println(answer);
        return answer;

    }

}

因此,当我调用此方法时,两个参数之间没有区别:

http://myfakeurl/prueba?id=1&id=2

我应该如何处理?有没有办法给参数“加前缀”?我见过@RequestParam,但它对我不起作用,因为它不能用于我自己的美容课程(或者我错了吗?)。我也想避免包装类。感谢您的时间。

4

2 回答 2

1

你应该使用@PathVariable 来解决这个问题。

您的映射网址将是这样的。

@RequestMapping(value = "/" + "prueba" + "/{id1}/{id2}" , method = RequestMethod.GET) 

你的功能中的争论是。

public @ResponseBody String prueba(@PathVariable int pFoo1, @PathVariable int pFoo2)

通过这种方式,您可以获得控制器中的两个 ID,以便使用它们进行进一步操作。

希望这对您有所帮助。

干杯。

于 2012-05-11T05:48:32.527 回答
0

因此,在同事的帮助下,我来到了讨论该主题的下一页:

绑定 Spring MVC 命令对象时自定义参数名称

这导致了下一个 StackOverFlow 问题:

绑定spring mvc命令对象时如何自定义参数名称

所以看起来没有像“使用注释X”这样的简单解决方案,而是创建自己的解析器,并使用自定义注释(作为一个好的新手,我仍在努力理解它:-S)。

于 2012-05-14T09:37:37.507 回答