Spring MVC正在删除@PathVariable。

3
如果我一直点击控制器并猛击它,偶尔我的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; // 这不应该发生,但确实发生了。 } }

你检查了那个控制器的作用域了吗(它是默认的单例吗)? - nickdos
4个回答

3

是的,对我来说正则表达式也是最可靠的。我用它来获取参数中的电子邮件地址:

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

1

1
在这种情况下不是问题。参数是2或3个字母数字字符,没有小数点。我也看到regionId现在变成null了。 - Dilbert789

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>       

0

将Spring框架更新到最新版本似乎已经奏效。显然,当我们更新框架时,某些东西没有正常工作。

编辑:

所以这根本不是我们的问题...我们错误地实现了一个字符串修剪编辑器,并且它一直保持状态。因此,当我们在负载下进行调用时,它会交叉结果。


一年后问题再次出现。似乎一开始并没有解决它。 - Dilbert789
问题实际上是一个字符串修剪编辑器,它没有被正确地实现。 - Dilbert789

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接