2013-05-19 66 views
0

我正在开发一个使用spring 3的web应用程序。我使用tomcat 6作为web容器。使用spring bean初始化java.util.ArrayList

在我的web.xml文件中,我将名为applicationContext.xml的文件作为弹簧定义文件进行绑定。

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/applicationContext.xml</param-value> 
</context-param> 

从applicationContext.xml文件我试图初始化一个数组列表变量使用spring bean定义。即时在按照以下配置..(IM使用jidea)

<bean id="registationController" class="com.test.RegistrationController"> 
    <property name="registrationService" ref="registrationService"/> 
    <property name="validUrlsList" ref="myList"/> 
</bean> 

<util:list id="myList" value-type="java.lang.String"> 
    <value>10.1.200.104</value> 
    <value>10.1.200.205</value> 
</util:list> 

我已经加载的

xmlns:util="http://www.springframework.org/schema/util" 

命名空间,并且在RegistrationController.java类我已经产生用于validUrlsList getter和setter变量,jidea表明我的定义是正确的,并且我已经将我的可变参数巧妙地绑定到了bean定义。但是当我尝试了代码,它不会初始化validUrlList变量?它给出一个空值?我在这里做错了什么?任何建议来解决这个问题?

java代码如下。,,

private ArrayList validUrlsList;  
public void setValidUrlsList(ArrayList validUrlsList) { 
    this.validUrlsList = validUrlsList; 
} 

public ArrayList getValidUrlsList() { 
    return validUrlsList; 
} 

然后我通过只传递变量如下调用该方法getRemoteIp。

if (getRemoteIP(req, validUrlsList)) { 

- 问候,Rangana

+0

向我们展示您如何试用代码。并向我们​​展示RegistrationController的代码。哦,你的IDE的名字是IntelliJ IDEA。不是jidea。 –

+0

修改了添加java代码的问题?我没有使用过XmlBeanFactory,认为它会在加载时初始化? –

+0

你怎么知道Spring构造的列表是一个ArrayList?如果从你的XML构造的列表是一个LinkedList或者一个不可修改的列表,它怎么能调用你的setter?代码与接口。使用'列表'而不是'ArrayList '。 –

回答

1

util:list创造java.util.List例如,它不是说创造java.util.ArrayList

您应该

private ArrayList validUrlsList; 

改变你的声明

private List validUrlsList; 

(和setter和getter以及)。

+0

通过改变java.util.List工作,但我不得不使变量静态...私人静态列表validUrlsList;只有这样我才能正确地获得清单。感谢您的大力支持。 :) –