我正在尝试使用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
我们非常感谢您的帮助。
答案 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/>
。一旦添加,它就开始没有问题了。