@Spring MVC中的值未填充

@Spring MVC中的值未填充,spring,spring-mvc,Spring,Spring Mvc,我试图在SpringMVC中使用@Value注释填充一个属性,但是没有填充 我正在尝试使用Struts2 JSP属性访问该属性。我的用例如下所示: public class TransferCreditsAction extends StudentAwareAction { protected Log logger = LogFactory.getLog(this.getClass()); @Value( "${transfer.credit.url}" ) private

我试图在SpringMVC中使用@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;
   }
}
我正在使用JSP访问此属性,它看起来像:

transfer.credit.url
<s:property value='transferCreditUrl'/>"
我知道我的JSP可以访问这个字段,因为我在将这个字段设置为默认值时对它进行了测试

但是,此字段不是从我的属性文件填充的。我使用的是Spring 4.1.6


非常感谢您的帮助。

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


有多种方法可以将您的
TransferCreditsAction
类声明为Springbean,其他地方已经回答了。

您没有在
TransferCreditsAction
类上添加什么。 值将被注入Bean环境中

有很多方法可以做到这一点

假设我的属性文件包含

username=Ashish
app.name=Hello
一,

二,

三,


只需在您试图获取的类的顶部提供属性文件引用

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

发生此问题是因为我的applicationContext中缺少
。一旦我添加了它,它就可以正常工作。

TransferCreditsAction是bean吗?我没有看到任何组件注释吗?是的,它已经是SpringBean了。我有多个上下文,对于这个特定的上下文,我在其中声明了这个bean。我想我的问题是因为我有多个上下文,并且在PropertyPlaceholderVariableLocationConfigurer的定义中存在一些冲突。我将更新我的问题,使其看起来更清楚。我可以通过添加到我的applicationContext xml文件来解决此问题。我没有添加我正在扩展的代码,因为它经过了真正的测试,并且与我无关nt与此用例相关。但是,此问题与具有多个应用程序上下文文件有关,并且我尚未激活要在主上下文文件中检测到的注释。
足以使其正常工作。这不是真正的问题。
@Service
public class PaloAltoSbiClientImpl implements PaloAltoSbiClient {

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


...
@Component
public class TokenHelper {

    @Value("${app.name}")
    private String APP_NAME;
@PropertySource(value = { "classpath:sample.properties" })