所以我必須花時間去嘗試得到這一職位的工作的anwser:
Overriding RequestMapping on SpringMVC controller@RequestMapping與佔位符不工作
但它確實是不工作。我至今:
用SpringMVC-servlet.xml中
<context:property-placeholder location="classpath:numbernick.properties"/>
<context:component-scan base-package="com.numbernick" />
<context:annotation-config />
而且我有一個控制器:
@Value("${requestmapping.test}")
private String test;
@RequestMapping("${requestmapping.test}.html")
public ModelAndView test() {
ModelAndView mav = new ModelAndView();
mav.setViewName(test.html);
log.debug("Test: "+test);
return mav;
}
numbernick.properties:
requestmapping.test=myUrl
這應該工作正常。當我打電話給我的網頁時,我收到了一條名爲「Test:myUrl」的記錄短信。但!這是當我打電話「/${requestmapping.test},html」。它應該調用「/myUrl.html」。我完全不知道爲什麼這樣。很顯然,PropertyPlaceholder可以工作,並且不能同時工作。 (順便說一句:它是一個嵌套的RequestMapping,但它也不能在topLvl-RequestMapping中工作)
這怎麼可能,我該怎麼辦才能解決這個問題?我目前正在使用spring verion 3.2.8
EL是在@ @ RequestMapping中的一件事情嗎?我從來沒有見過這種情況,如果是這樣,這對我來說是新的。 – CodeChimp
那麼這是如何在文檔中:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-requestmapping-placeholders – Numbernick
我wasn不是說你錯了,我只是感到驚訝,這工作。我知道你可以使用'{...}'作爲'@ PathVariable'的佔位符,甚至可以使用正則表達式。我想我從來沒有讀過那些說你可以用EL在你的'@ RequestMapping'中使用屬性值的部分。它永遠不會讓我驚訝於春天的人們把他們的細節放在他們的api上。 – CodeChimp