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