2012-03-02 85 views
0

@Value返回null,因爲我正在嘗試讀取屬性。Spring 3.05-與@Value問題 - 返回null

下面是我的配置:

<util:properties 
    id="applicationProps" 
    location="/WEB-INF/spring/application.properties" /> 

下面是我有一個自定義標籤的代碼:

private @Value("#{applicationProps.staticResourceUrl}") String staticResourceUrl; 
+1

自定義標籤?春天是否控制其生命週期?它是否在掃描包中? – 2012-03-02 16:42:41

+0

嗨戴夫,我不知道如何讓春天控制自定義標籤的生命週期或讓它掃描?截至目前,我在自己試圖在JSP中使用它的相同包中編寫了自定義標籤。 – user1241392 2012-03-02 16:47:39

+0

爲了得到認可,它需要在彈簧掃描註釋的包裝中。不確定它是否也需要註釋爲組件。 – 2012-03-02 16:58:07

回答

0

如果道具文件application.properties包含一個名爲staticResourceUrl然後通過導入屬性:

<context:property-placeholder location="/WEB-INF/spring/application.properties"/> 

,並通過使用它:

@Value("${staticResourceUrl}") private String staticResourceUrl; 
+0

Still需要掃描。 – 2012-03-02 17:30:20

+0

我已經完成了保羅上面提到的。另外,有@Component註釋。儘管如此,我卻變得空虛。 – user1241392 2012-03-02 17:47:59

+0

下面是我的application.properties - staticResourceUrl = http:// localhost-static-webserver:8082。下面是我的spring-servlet.xml - user1241392 2012-03-02 17:48:53

0

自定義標籤的生命週期通常不是由彈簧處理,但有一兩件事你可以做的是延長

org.springframework.web.servlet.tags.RequestContextAwareTag

,並在doStartTagInternal()方法做

WebApplicationContext wac = getRequestContext().getWebApplicationContext(); 
String url = wac.getEnvironment().getProperty("some.property");