Spring MVC中的@Value未填充

时间:2018-08-03 03:02:27

标签: spring spring-mvc

我正在尝试使用Spring MVC中的@Value注释填充属性,并且没有填充它。

我正在尝试使用Struts2 JSP属性访问该属性。我的用例看起来像这样:

public class TransferCreditsAction extends StudentAwareAction {

   protected Log logger = LogFactory.getLog(this.getClass());

   @Value( "${transfer.credit.url}" )
   private String transferCreditUrl;

   public void setStates( List<TranslatedValue> states ) {
      this.states = states;
   }

   @Value( "${transfer.credit.url}" )
   public String getTransferCreditUrl() {
      return transferCreditUrl;
   }
}

我的财产文件如下:

transfer.credit.url

我正在使用如下所示的JSP访问此属性:

<s:property value='transferCreditUrl'/>"

我知道我的JSP可以访问该字段,因为我在将此字段设置为默认值时进行了测试。

但是,没有从我的属性文件中填充此字段。我正在使用Spring 4.1.6

我们非常感谢您的帮助。

4 个答案:

答案 0 :(得分:0)

Spring只能在其自己的托管Spring Bean中注入值。这意味着您的TransferCreditsAction应该是春季豆。

有多种方法可以将TransferCreditsAction类声明为spring bean,其他地方已经对此进行了回答。

答案 1 :(得分:0)

您尚未在TransferCreditsAction类的顶部添加内容。 值将注入到Bean Env中。

有很多方法可以做到

假设我的属性文件包含

username=Ashish
app.name=Hello

1。

@Service
@PropertySource(value = { "classpath:sample.properties" })
public class PaloAltoSbiClientImpl implements PaloAltoSbiClient {

    public static String username;

    @Value("${username}")
    public void setUrl(String data) {
        username = data;
    }

...

2。

@Service
public class PaloAltoSbiClientImpl implements PaloAltoSbiClient {

    @Value("${username}")
    public static String username;


...

3。

@Component
public class TokenHelper {

    @Value("${app.name}")
    private String APP_NAME;

答案 2 :(得分:0)

只需在要获取的类的顶部提供属性文件引用即可。

@PropertySource(value = { "classpath:sample.properties" })

答案 3 :(得分:0)

发生此问题是因为我的applicationContext中缺少<context:annotation-config/>。一旦添加,它就开始没有问题了。