webwork2.2.6 Action里的List接收不到页面对象

action实现了Preparable方法,并声明了一个对象List
eg:private List fcxmjzfpVoList = new ArrayList();
页面用: fcxmjzfpVoList[0].name
fcxmjzfpVoList[1].name

表单提交后
后台debug这个List,发现List的Size 正确,但是里面的对象全部为空,以前用Struts2这样做没问题的,但在webwork下如何配置才正确?
如何让webwork自动装配List?

谢谢

仔细检查下代码。关键点就这些,看是否是哪里的配置问题。webwork 自带showcase里有一个 editPersons 的 功能,代码如下,可以参考下;
[b]EditPerson.java[/b][code="java"]package com.opensymphony.webwork.showcase.person;

import com.opensymphony.xwork.ActionSupport;

import java.util.List;
import java.util.Iterator;
import java.util.ArrayList;

/**

  • EditPerson *
  • @author Rainer Hermanns
  • @version $Id: EditPerson.java 2391 2006-03-12 17:03:21Z rainerh $
    */
    public class EditPerson extends ActionSupport {

    PersonManager personManager;
    List persons = new ArrayList();

    public void setPersonManager(PersonManager personManager) {
    this.personManager = personManager;
    }

    public List getPersons() {
    return persons;
    }

    public void setPersons(List persons) {
    this.persons = persons;
    }

    /**

    • A default implementation that does nothing an returns "success". *
    • @return {@link #SUCCESS} */ public String execute() throws Exception { persons.addAll(personManager.getPeople()); return SUCCESS; }

    /**

    • A default implementation that does nothing an returns "success". *
    • @return {@link #SUCCESS}
      */
      public String save() throws Exception {

      // Set people = personManager.getPeople();

      for ( Iterator iter = persons.iterator(); iter.hasNext();) {
      Person p = (Person) iter.next();
      personManager.getPeople().remove(p);
      personManager.getPeople().add(p);
      }
      return SUCCESS;
      }

}
[/code]
[b]EditPerson-conversion.properties[/b]
[code="java"]KeyProperty_persons=id
Element_persons=com.opensymphony.webwork.showcase.person.Person
CreateIfNull_persons=true[/code]
[b]xwork.xml[/b]
[code="java"]
editPeople.jsp

[/code]
[b]jsp[/b]
[code]<%@ taglib prefix="ww" uri="/webwork" %>



Edit Persons (batch-edit)


<table>
    <tr>
        <th>ID</th>
        <th>First Name</th>
        <th>Last Name</th>
    </tr>
    <ww:iterator id="p" value="persons">
        <tr>
            <td>
                <ww:property value="%{id}" />
            </td>
            <td>
                <ww:textfield label="First Name" name="persons(%{id}).name" value="%{name}" theme="simple" />
            </td>
            <td>
                <ww:textfield label="Last Name" name="persons(%{id}).lastName" value="%{lastName}" theme="simple"/>
            </td>
        </tr>
    </ww:iterator>
</table>

<ww:submit value="Save all persons"/>

/ww:form



[/code]

在action类所在包下添加属性文件,命名为 ClassName_conversion.properties

里面配置
Element_fcxmjzfpVoList = 包名.FcxmjzfpVo

[quote]CreateIfNull_fcxmjzfpVoList=true [/quote]这句应该很关键

ClassName.java
ClassName-conversion.properties (是-不是_)

Element_fcxmjzfpVoList=包名.FcxmjzfpVo
CreateIfNull_fcxmjzfpVoList=true

ps:有加了conversion.properties后配置文件后貌似debug不了的