Spring用XML方式注入不同于String类型的初始值
我想从外部文件注入,但是并不是所有属性都是String类型,比如年龄我设置的是int类型,若在XML文件中配置,如下所示:<beanid="person"class="c...
我想从外部文件注入,但是并不是所有属性都是String类型,比如年龄我设置的是int类型,若在XML文件中配置,如下所示:
<bean id="person" class="com.spring.custom.Person" >
<property name="name" value="${name}"></property>
<property name="age" value="${age}" ></property>
<property name="sex" value="${sex}"></property>
</bean>
则启动会报错:Failed to convert property value of type 'java.lang.String' to required type 'int' for property 'age'; nested exception is java.lang.NumberFormatException: For input string: "${age}",请问在xml文件中如何进行数据类型转换? 展开
<bean id="person" class="com.spring.custom.Person" >
<property name="name" value="${name}"></property>
<property name="age" value="${age}" ></property>
<property name="sex" value="${sex}"></property>
</bean>
则启动会报错:Failed to convert property value of type 'java.lang.String' to required type 'int' for property 'age'; nested exception is java.lang.NumberFormatException: For input string: "${age}",请问在xml文件中如何进行数据类型转换? 展开
1个回答
展开全部
首先这部分肯定都是String的值,但是可以手工进行转换,这部分注入,spring会调用你对应person类中的set方法,比如年龄,肯定是setAge(int age),你尝试重写这个set方法,入口参数为String类型,然后在set方法里面进行类型唯滑转换,在进行this.age=这样的赋值,直接码山皮this.age=age肯定是不行的,提供一个setAge(String age)就好了,xml本身进行数据类型转换我没有用过,可以看看其他人怎么回答吧迟差
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询