Struts2 dynamiquement ajouter, de supprimer la liste des objets à partir de la page

Je suis en train de construire une page sur Struts2 qui ajoute des valeurs d'une table de base de données. Le problème est, la page doit permettre aux utilisateurs de saisir plusieurs lignes de la table de base de données. Lorsque l'utilisateur clique sur envoyer, il faut lire et écrire les lignes de la table de base de données. Les utilisateurs peuvent ajouter ou supprimer des lignes à partir de la page

Donc j'ai essayé de rendre une valeur de Liste à la page. Java code ressemble à ceci:

List<Testimate> estimates;
private String removeIndex;

public String execute() throws Exception {
    estimates = new ArrayList<Testimate>();
    for(int i = 0; i < INITIAL_ESTIMATES; i++)
        estimates.add(new Testimate());
    return INPUT;
}
public String add() {
    estimates.add(new Testimate());
    System.out.println(estimates.size());
    return INPUT;
}

public String remove() {
    estimates.remove(Integer.parseInt(getRemoveIndex()));
    System.out.println(estimates.size() + " " + getRemoveIndex());


    return INPUT;
    }   
And the page looks something like this:
<script>
   setRemoveIndex()
   {    
        $('input[name="removeIndex"]').val(removeIndex);
        return true;
   }
</script>
<s:form theme="custom" onsubmit="setRemoveIndex()">
<s:submit action="CEST02_add" cssClass="ButtonSmall" value="Add estimate" />
<s:hidden name="removeIndex"/>
<table>
<s:iterator value="estimates" var="estimate" status="status">
<tr>
   <td><s:textfield name="estimates[%{#status.index}].name"cssClass="product" /></td>
   <td><s:textfield name="estimates[%{#status.index}].price"cssClass="product" /></td>
   <td><s:textfield name="estimates[%{#status.index}].date"cssClass="product" /></td>
   <td><s:textfield name="estimates[%{#status.index}].attr"cssClass="product" /></td>
   <td><s:submit action="CEST02_remove" cssClass="ButtonSmall" value="Remove this estimate" onclick="removeIndex=%{#status.index}"/>
   </td>
</tr>
</s:iterator>
</table>
</s:form>

Et lorsque je clique sur "Ajouter estimer", il ajoute un élément à la liste des "estimations". Et il imprime la taille correctement. Mais lorsque je clique sur "Supprimer cette estimation", il ne change pas la liste des "estimations". Mais il imprime que la taille de la liste est réduite par un. Et quand je clique encore une fois, la taille ne change pas. Il ne reçoit pas de modification.

Pouvez-vous me dire quel est le problème avec ce code. J'ai peut-être un énorme malentendu comment ce cadre fonctionne. Si vous avez des questions ou des précisions, n'hésitez pas à

Mise à JOUR:

J'ai résolu mon problème avec les lignes suivantes sur mon JSP. Mais la question reste encore pourquoi je ne pouvais pas faire cela sur mon Action.

<s:iterator value="estimates" var="estimate" status="status">
   <s:if test="#status.index != removeIndex">
pouvez-vous décrire un peu plus onclick="removeIndex=%{#status.index}"/
Afin de savoir qui de la soumettre a cliqué, il enregistre le numéro d'index pour une variable. Puis il enlève le n-ième élément de la liste
avez-vous essayé avec le débogueur ce qui se passe exactement?
Je viens de débogage, et je ne pouvais pas obtenir quelque chose d'utile puisqu'il n'y a pas un fichier source pour hibernate classes.
mais comme par votre code son n'est pas n'importe où liée à Hibernate de ne pas je vois de tels appels dans votre classe d'action, et dans ce cas, difficile de dire quelque chose

OriginalL'auteur batbaatar | 2012-01-18