Project

General

Profile

Bug #59253

Updated by Anja Leichsenring over 9 years ago

Backport from #29290, see this issue for detailed problem description 

 When binding Fluid forms to nested objects, Fluid automatically adds 
 hidden fields with the identifiers of all affected objects so that 
 the persistence layer can update all objects correctly. 

 When a form was redisplayed due to property mapping errors, the 
 identity fields for the nested sub objects were no longer created. 

 This change fixes this by making sure all identity fields are rendered 
 recursively also after property mapping errors. 

 Example code to verify this:: 
	 <f:form action="update" object="{user}" objectName="user"> 
	   <f:form.textfield property="firstName" /> 
	   <f:for each="{user.invoices}" as="invoice" iteration="iteration"> 
	     {iteration.cycle}: 
	     <f:form.textfield property="invoices.{iteration.index}.subject" /> 
	   </f:for> 
	   <f:form.submit value="update" /> 
	 </f:form> 

 When submitting the form with validation errors, the redisplayed form 
 should contain a div with a hidden field named 
 "user[__identity]" for the user and one for each invoice.

Back