Spring MVC正在删除@PathVariable

时间:2011-04-13 13:00:55

标签: spring-mvc

如果我多次敲击控制器并锤击它,偶尔我的modelCode参数将为null。但是URL中包含modelCode。 使用Spring Framework 3.0.5.RELEASE

 @RequestMapping(value="ws/getallvariants/{channelCode}/{modelCode}/{regionId}/{year}")
    public ModelAndView getAllVariants(@PathVariable("channelCode") String channelCode, 
          @PathVariable("modelCode") String modelCode,@PathVariable("regionId") String regionId,@PathVariable("year") String year){ 

if (modelCode == null) { int i = 0; // this should never hit, but does. }

4 个答案:

答案 0 :(得分:3)

是的,RegEx对我来说也是最可靠的。这是为了获取电子邮件地址作为参数:

@RequestMapping(value = "rest/userreadserv/search/{email:.+}", method = RequestMethod.GET)
public ResponseEntity getUserAccountByEmail(@PathVariable String email) {...}

答案 1 :(得分:1)

看看Spring MVC @PathVariable getting truncated。正则表达式方法对我有用:

@RequestMapping({ "/servers/{serverName:.+}" })

答案 2 :(得分:0)

再次将spring框架更新到最新版本似乎已经奏效。显然,当我们更新我们的框架时,某些东西无法正常工作。

编辑:

所以这根本不是我们的问题......我们错误地实现了一个String Trimmer Editor并保持状态。因此,当我们将调用置于负载下时,它将交叉结果。

答案 3 :(得分:0)

//in your xml dispatcher  add this property to your default annotation mapper bean as follow
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
    <property name="alwaysUseFullPath" value="true"></property>
</bean>