集合/列表属性不会绑定或形式提交更新(Collection/List property won

2019-07-30 02:39发布

因此,我已经设置了与弹簧幅流程的向导界面,逐渐填充单一形式的对象/模型。 它工作正常的具有填充单个String或基本属性和一个字符串数组(从一个复选框接口)的前几个步骤。

然后,我有一个List<String>属性。 它可以正确显示,与正确的初始化值的多个文本框。 但是,当我修改浏览器上的文本框和提交,值不承担form bean的效果。 它仍然有初始值。

下面是详细的设置:

在启动网络流量,其创建bean:

<on-start>
    <evaluate expression="new mypackage.MyFormBean()" result="flowScope.myFormBean" />
</on-start>

这里是我的form bean的相关部分:

public class MyFormBean implements Serializable {
    ...
    private List<SlotBean> slots;
    ...
    public List<SlotBean> getSlots() {
        return slots;
    }
    public void setSlots(List<SlotBean> slots) {
        this.slots= slots;
    }
    ...
}

public class SlotBean {
    ...
    private int quantity;
    ...
    public int getQuantity() {
        return quantity;
    }
    public void setQuantity(int quantity) {
        this.quantity= quantity;
    }
    ...
}

我有一系列的视图状态与简单的字符串或数字字段绑定被初始化,显示和存储,而不问题的形式建立我的网络流量。

此视图状态产生任何数量SlotBean对象然后初始化量与2。这些被设置为槽属性。

<view-state id="generate-criteria" model="disciplineCatalogue">
    ...
    <transition on="next" to="slots-grid">
        <evaluate expression="myService.generateSlots(myFormBean)"/>
    </transition>
    ...
</view-state>

这里是JSP片段。 它所做的就是渲染了一堆文本框。 还有一个下一个按钮:

<form:form id="slotsGrid" modelAttribute="myFormBean" action="${flowExecutionUrl}">
    ...
    <c:forEach var="slot" items="${myFormBean.slots}" varStatus="idx">
        <form:input path="slots[${idx.index}].quantity" />
    </c:forEach>
    ...
    <button type="submit" id="next" name="_eventId_next">Next</button>
    ...
</form:form>

上面的代码与所述初始值(2)正确地显示。 它产生多个文本框象下面这样:

<input id="slots0.quantity" name="slots[0].quantity" type="text" value="2"/>

所以,当这个页面在浏览器上,我更改数量文本框的值不同的值,然后单击“下一步”按钮。 在我的浏览器的网络调试器,我看到表单值被发送到服务器:

slots[0].quantity:3
slots[1].quantity:1
slots[2].quantity:2

这里是下一个按钮相关的Web流条目。

<view-state id="slots-grid" model="myFormBean">
    <binder>
        ...
        <binding property="slots" />
    </binder>
    ...
    <transition on="next" to="finished">
        <evaluate expression="myService.create(myFormBean)"/>
    </transition>
    ...
</view-state>

于是我穿上了一个破发点myService.create(myFormBean)方法,它表明所有数量字段仍设置为原来的“2”。 新的价值观不结合myFormBean.slots

你有什么可以在我的建立,看上去错看?

感谢您的任何时候都可以投入到这个

Spring框架3.1.1

春Webflow的2.3.1

Tomcat的6.0.18

Eclipse的靛蓝

跨发表于: http://forum.springsource.org/showthread.php?127809-Collection-List-property-won-t-bind-or-update-on-form-submit

文章来源: Collection/List property won't bind or update on form submit