2011-04-13 103 views
3

如果我多次敲擊控制器並敲擊它,偶爾我的modelCode參數會變爲null。但是,URL中包含modelCode。 使用Spring框架3.0.5.RELEASESpring MVC正在刪除@PathVariable

 
@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. }

+0

你檢查的範圍爲控制器(是不是默認的單身)? – nickdos 2011-04-15 23:11:26

回答

0

再次更新Spring框架的最新版本似乎已經奏效。顯然,當我們更新我們的框架時,某些東西無法正常工作。

編輯:

所以這不是我們的問題在所有...我們已經建立了一個字符串微調編輯器使用不當,它是保持狀態。所以當我們把這個通話加載時,它會跨越結果。

+0

一年後,問題再次出現。看起來它並沒有解決。 – Dilbert789 2012-09-19 17:51:42

+0

這個問題實際上是一個沒有正確實現的stringTrimmerEditor。 – Dilbert789 2012-09-20 14:50:36

+0

您是否應該將此延伸至答案/編輯您的答案? – 2012-09-29 13:57:45

1

看看Spring MVC @PathVariable getting truncated。正則表達式的方法爲我工作:

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

+1

在這種情況下不是問題。參數是2個或3個字母數字字符,無小數。我也看到了regionId現在變爲空。 – Dilbert789 2011-04-13 16:38:15

3

是的,RegEx對我來說也是最可靠的。這樣做是爲了搶一個電子郵件地址作爲參數:

@RequestMapping(value = "rest/userreadserv/search/{email:.+}", method = RequestMethod.GET) 
public ResponseEntity getUserAccountByEmail(@PathVariable String email) {...} 
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>  
相關問題