0

我们遇到了一个问题,即通过@PathVariable或通过中等负载下的绑定接收的值将分配给错误的变量。Spring未正确映射@pathVariables到正确的变量

为了做这些测试,我们总是碰到相同的URL。每次点击网址都会产生正确的结果。

我们使用Spring 3.0.5.RELEASE,但已经厌倦了3.1.2.RELEASE,仍然存在问题。我们看不到其他近期发生的变化,而且我们已经将这些服务投入使用了一年多,而且他们似乎刚刚开始抛出这些服务。

代码示例的绑定:

@RequestMapping(value = "config/selectItem") 
public ModelAndView selectItem(@Valid selectItemCommand command, BindingResult bindResults) { 
    if (!"test".equals(command.getName()) 
    { 
    //Fails into here 
    int i =0; 

    }  
} 

代码示例为路径变量:

@RequestMapping(value = "config/selectItem/{name}",method = RequestMethod.GET) 
public ModelAndView selectItem(@PathVariable("name") String name) 
{ 
    if (!"test".equals(name)) 
    { 
    //Fails into here 
    int i = 0; 
    } 
} 

我添加了一个HttpServletRequest的请求参数列表,它显示了正确的价值观的URL。

我完全忘了,但是我们在一年前出现了这个问题,当时我已经考虑过解决问题但是没有解决问题。 Spring MVC is dropping a @PathVariable

回答

1

事实证明,我们实施了一个StringTrimmerEditor错误,它不是线程安全的。