簡體   English   中英

在Spring MVC表單中綁定嵌套屬性

[英]Binding nested properties in Spring MVC forms

我在Spring mvc 4中綁定嵌套對象屬性時遇到問題。這是場景:

Form.java:

@Entity
@Table (name = "form")
public class Form implements java.io.Serializable{

@SuppressWarnings("unchecked")
private List<Field> fieldsList = LazyList.decorate(new ArrayList<Field>(),  
           FactoryUtils.instantiateFactory(Field.class));

Field.java

@Entity
@Table(name="field")
public class Field implements java.io.Serializable {

private FieldType fieldType;

FieldType.java

@Entity
@Table(name="field_type")
public class FieldType implements java.io.Serializable {

private Integer id;
private String name;
private List<Field> fields;

我正在發送具有Field對象列表的Form對象:

@RequestMapping(method = RequestMethod.GET)
public ModelAndView editForm(HttpServletRequest request){
    ModelAndView model = new ModelAndView("denf_dynamic_form");
    Form f = formBackingObject(request);
    model.addObject("command", f);
    model.addObject("origFormName",f.getFormName());
    return model;
}

在JSP中,我試圖像這樣綁定form.fieldsList.fieldType.name屬性:

<c:forEach items="${command.fieldsList}" var="fi" varStatus="i">

<spring:bind path="command.fieldsList[${i.index}].fieldType.name"> 
    <input style="display:none;" id='fTypeName' name='${status.expression}' 
    value="${status.value }"/>
</spring:bind>

如果字段列表較小,則綁定工作正常。 隨着字段數量的增加(大約100個),該行為將變得異常。 與Form類直接相關的屬性已正確綁定。 但是不能綁定FieldType類的嵌套屬性(如fieldType.name)。

有人可以幫忙嗎?

只是更新:原因是為fieldType對象生成的ID相同。

基本上,它們是指相同的對象。 這就是為什么彈簧綁定無法正常工作的原因。

這些ID是否可以唯一?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM