其他分享
首页 > 其他分享> > Spring 3.0多个@PathVariable的问题

Spring 3.0多个@PathVariable的问题

作者:互联网

在我的应用程序中,我必须将控制器中映射到的3种产品进行比较.

@RequestMapping(value = "/products/{proId1}Vs{proId2}Vs{proId3}", method = RequestMethod.GET)
public ModelAndView compareThreeProducts(@PathVariable("proId1") int id1, @PathVariable("proId2") int id2, @PathVariable("proId3") int id3)
{
   //someLogic

当点击我的网址时(http:// something / products / 12Vs13Vs14)

我收到HTTP 400错误

我也尝试了2 @pathVariable像

@RequestMapping(value = "/products/{proId1}Vs{proId2}", method = RequestMethod.GET)
public ModelAndView compareTwoProducts(@PathVariable("proId1") int id1, @PathVariable("proId2") int id2) 

这工作正常,但是为什么我要面对3个变量的问题,并且服务器日志中没有错误,然后如何查找错误.

任何解决方案?

解决方法:

您可以尝试将所有内容集中到一个路径变量中,然后手动对其进行解析:

@RequestMapping(value = "/products/{compareIdString}", method = RequestMethod.GET)
public ModelAndView compareThreeProducts(@PathVariable("compareIdString") String compareIdString)
{
    // split compareIdString on "Vs"
    // parse each resulting value to an int

但是,这更多的是解决方法,而不是解决方案.如果您想尝试找出到底出了什么问题,则可能要按照Bozho的建议在Spring代码中进行调试.

标签:path-variables,spring,spring-mvc
来源: https://codeday.me/bug/20191102/1990517.html