Je travaille avec des propriétés indexées (à l'aide de struts et de java/jsp). Nous avons une table dynamique qui peut ajouter/supprimer des lignes/éléments dans la table. L'ajout de lignes fonctionne comme prévu - je vois les nouvelles lignes dans le formulaire dans la classe d'action. Les lignes supprimées ne sont pas définies (évidemment), mais elles ne sont pas non plus supprimées de la liste. J'ai implémenté un void setItem (liste), void setItem (index), élément getItem (index) et liste getItem() méthodes. Je ne trouve pas beaucoup d'informations sur le comportement des propriétés indexées. Existe-t-il une méthode de réinitialisation que je dois implémenter ou des propriétés indexées sont-elles supposées prendre en charge la définition d'une nouvelle liste? D'après ce que je peux dire, seuls les éléments encore dans la liste sont définis, et ils sont définis en utilisant la méthode void setItem (Item).Suppression d'un élément d'une propriété indexée - question JavaBeans
1
A
Répondre
1
- Assurez-vous que votre formulaire est demande scope, pas la session scope
- Utilisez un LazyList.
Par exemple:
private List<PropertyContact> contactsList = LazyList.decorate(new ArrayList<PropertyContact>(), PropertyContact.PROPERTY_CONTACT_FACTORY);
public static final Factory PROPERTY_CONTACT_FACTORY = new Factory() {
@Override
public Object create() {
return new PropertyContact();
}
};
Ensuite, vous pouvez afficher/modifier la liste dans votre JSP comme ceci:
<c:forEach items="${profileForm.contactsList}" var="contact" varStatus="contactSta">
<html:hidden styleClass="contact-id" property="contactsList[${contactSta.index}].id"/>
</c:forEach>
Si vous voulez ajouter des éléments à la liste, assurez-vous définir un indice supérieur au maximum. Par exemple, si ma liste contient 3 éléments, le nouveau (le quatrième) se présente comme suit: (souvenez-vous de cette liste sont zéro indice basé)
<input style="hidden" styleClass="contact-id" property="contactsList[3].id"/>
Lorsque le formulaire est soumis, tout élément de liste supprimé sera mis un null à l'index spécifique. Par exemple, disons que l'utilisateur supprime les 2èmes éléments, je verrai sur le serveur:
contactsList.get(1) == null;//remember that list are zero-index based
Questions connexes
- 1. hasErrors avec la propriété indexée
- 2. JavaBeans et JasperReports
- 3. JavaBeans et DSL
- 4. Suppression d'un élément Répéteur ASP.NET - Suppression erronée ...?
- 5. Reliure à la propriété indexée avec la chaîne clé
- 6. Comment faire pour définir Moq Définition d'une propriété indexée
- 7. Problèmes avec JavaBeans Form
- 8. Sphinx: référence croisée indexée
- 9. Suppression d'un élément de tableau
- 10. Propriété indexée de Struts - aucune méthode getter trouvée pour la propriété
- 11. ASP.NET Question: propriété Request.Url.Host
- 12. C# Indexer propriété Question
- 13. Fonctions Propriété Question
- 14. Suppression d'un élément du plug-in jCousel
- 15. Question Python sur l'opération élément par élément
- 16. Définition de la propriété .Top, suppression de la propriété Anchor
- 17. JavaBeans Introspector ne trouve pas correctement la propriété avec le type de hiérarchie d'interface
- 18. Suppression d'une propriété de fenêtre dans IE
- 19. configuration de propriété log4j question
- 20. C# Question d'héritage de propriété
- 21. Question sur la propriété singleton
- 22. Suppression d'un élément vecteur par clé
- 23. Suppression d'un élément lié de DataGridView
- 24. Ruby: Suppression du dernier élément itératif?
- 25. Suppression d'un élément sur un emplacement donné
- 26. Suppression premier élément d'un tableau _COOKIE $
- 27. Suppression d'un élément dans une liste
- 28. iPad élément d'interface utilisateur question
- 29. Question sur la suppression des graphismes
- 30. Suppression d'un élément de l'arborescence visuelle de manière générique
Pourriez-vous partager du code (votre jsp et votre méthode d'action à supprimer)? – CoolBeans