2011-11-04 2 views
2
<#list flowList as flow> 
    <@spring.formInput "flow.createDatetime" /> 
</#list> 

flowList은 arrayList입니다. @ spring.formInput in #list iterator

 
freemarker.template.TemplateModelException: Method public org.springframework.web.servlet.support.BindStatus org.springframework.web.servlet.support.RequestContext.getBindStatus(java.lang.String) throws java.lang.IllegalStateException threw an exception when invoked on [email protected] with arguments of types [java.lang.String,] 
    at freemarker.ext.beans.OverloadedMethodModel.exec(OverloadedMethodModel.java:134) 
    at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:93) 

어떻게 #list@spring.formInput를 해결할 수 있습니다.

답변

0

다음 해결 방법은 나를 위해 작동하지만, 꽤 추한 : 위의 양식을 게시 할 때

<#list flowList as flow> 
    <#assign index=flowList?seq_index_of(flow)> 
    <@spring.formInput "flowList[${index}].createDatetime" /> 
</#list> 

, 당신이 필요합니다 흐름 목록에 빈 흐름이 미리 채워져 있는지 확인하십시오. 다른 방법으로는 flow-list 구현으로 Spring의 AutoPopulatingList을 사용하는 것이다.

0

스프링이 객체를 바인딩하려면 정확한 참조가 제공되어야합니다. 따라서 태그에 색인을 추가해야합니다. 이는 폼을 다시 게시하고 컨트롤러 메소드의 요청 본문으로 플로우리스트 객체를 원할 때 필요합니다.

<#list flowList as flow> 
    <@spring.formInput "flowList[${flow_index}].createDatetime" /> 
</#list> 

당신이 HTML 보면 렌더링 후에는

<input type="text" id="flowList0.createDatetime" name="flowList[0].createDatetime" value="..." /> 
같은 것