struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kropp, Henning" <>
Subject Dynamic form fields with s:div and ajax
Date Tue, 02 Sep 2008 19:22:51 GMT

I am trying a common scenario, where I want to dynamically create form 
fields and either add or remove some fields. The fields are a List of 
objects. I using the following approach described in short:

        List<MyObject> myObjectList;
       prepare(){if == null (3x) add ... else add 1x}
       String delete(){ myObjectList.remove(int listPostion) }

    <s:form id="form">
          <s:textfield key="anotherField" />
         <s:div id="objectsDiv" theme="ajax" href="%{getListOfObjects}"  
formId="form"> </s:div>

    <s:iterator value="myObjectList" status="status">
          <s:url id="deleteObject[#stat.index]">
               <param name="listPosition" value="#stat.index" />
         <s:textfield key="myObjectlist[#stat.index].value1" /> ......
          <s:submit formId="form" value="-" 
href="%{deleteObject[#stat.index]" />

This works, but does not refresh the div objectsDiv. Using target does 
not work because objectList does not get onto the request, without 
target the objectList is on the request. I tried to set the objectList 
as a param to s:url deleteObject, this kind of works but results in a 
param intercepter exception (haven't tried a custom converter yet).
When having the div put the fields from formId="form" onto the request 
it only puts the fields onto the request that itself does not hold. In 
example only the 'anotherField'.

I think this should work this way. Why does setting target result in 
removing the myObjectList on the request? Why does s:div formId not put 
the fields on request itself holds?

Many thanks in advance

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message