action属性注入为null
一、 问题:
今天调试代码遇到问题,使用spring管理action,当中注入了部分原始类型的属性。
配置示比例如以下:
<bean class="test.login.test.LoginAction">
<property name="targetDomainUrl" value="www.test.com"/>
<property name="loginUrl" value="login.test.com"></property>
</bean>
每次请求过来跳转时,发现targetDomainUrl、loginUrl的值为null.
二、出现故障原因
通过在setter方法上打断点,发如今启动的时候。是有值的;每次新的action请求过来后值就变为null。
后来一想,应该是每次action请求,都把这两个属性targetDomainUrl、loginUrl当做參数了,而请求的链接中又没有这两个參数
所以。拿到的值肯定为null
三、解决的方法:
定义属性时,将属性定义为static的就好了。
private String targetDomainUrl; //每次action请求过程中,会去匹配相应的请求參数。并对其进行赋值,假设没有值即为null
private static String targetDomainUrl;//假设为static类型,则不会去和參数进行匹配,因此也不会被覆盖