Je me heurte la tête contre le mur à propos de ce que je pense que serait un problème très simple à résoudre dans Grails:Grails - Sort la liste de sortie sans avoir à avoir un SortedSet ou un modèle Comparable?
Dites que j'ai un modèle de shopping-cart-like; donc un panier de classe qui a de nombreux articles, et chaque article appartient au panier. En général, je ne me soucie pas de l'ordre des articles dans le panier - peu importe l'ordre dans lequel ils sont stockés, calculés, etc. Cependant, je veux les afficher dans le même ordre. Il me semble que cette logique devrait pouvoir exister ENTIEREMENT dans la couche de vue, mais les seules solutions que j'ai pu trouver me disent de déclarer des éléments comme SortedSet dans la couche modèle. Cela affecte également ma couche de contrôleur, car de simples opérations List telles que .collect {} nécessitent désormais un saut syntaxique supplémentaire pour que les conversions de type restent correctes et préservent mon tri.
Pour moi, c'est fou, il me manque quelque chose de simple! Est-il possible, par exemple, de faire quelque chose comme <g:each in="${cart.items.sort{it.name}}">
ou quelque chose de similaire, de sorte que je puisse appliquer un ordre d'affichage cohérent UNIQUEMENT à la couche de sortie/vue? EDIT - Voir la réponse de Matt ci-dessous; une version de cela fonctionne réellement.
Nous vous remercions de vos conseils ou de vos conseils!
C'est génial. Je suis finalement tombé sur une solution similaire dans le même sens en utilisant un ProxyGenerator et l'interface Comparator, mais le vôtre est beaucoup plus propre, et certainement le genre de solution que je recherchais. Merci! – bprotas