gpt4 book ai didi

Grails - 无需 SortedSet 或 Comparable 模型即可对列表输出进行排序?

转载 作者:行者123 更新时间:2023-12-02 04:36:33 25 4
gpt4 key购买 nike

我正在用头撞墙,我认为在 Grails 中解决这个问题是非常简单的:

假设我有类似购物车的模型;所以一个购物车类有很多商品,并且每个商品都属于购物车。一般来说,我不关心购物车中商品的顺序 - 我不关心它们的存储顺序、计算顺序等。但是,我确实想以相同的顺序显示它们。在我看来,这种逻辑应该能够完全存在于 View 层中,但我能找到的唯一解决方案告诉我将项目声明为模型层中的 SortedSet。这也会影响我的 Controller 层,因为简单的列表操作(例如 .collect{})现在需要额外的语法跳转以保持类型转换正确并保留我的排序。

对我来说,这太疯狂了,所以我一定错过了一些简单的东西!例如,有什么办法可以做 <g:each in="${cart.items.sort{it.name}}"> 之类的事情吗?或类似的东西,以便我可以仅在输出/ View 层强制执行一致的显示顺序?编辑 - 请参阅下面马特的回答;这个版本确实有效。

感谢您的建议或指点!

最佳答案

您还可以使用可用于集合/ map 的排序方法,如下定义:http://groovy.codehaus.org/api/org/codehaus/groovy/runtime/DefaultGroovyMethods.html

我个人发现与 <g:each/> 结合使用相当容易做到这一点我的 GSP 中的标签:

<!-- Books sorted by title -->
<g:each in="${ books.sort{a,b-> a.title.compareTo(b.title)} }">
<p>Title: ${it.title}</p>
<p>Author: ${it.author}</p>
</g:each>

有关操作集合和 map 的更多方法,我推荐 this pagethis page分别。

关于Grails - 无需 SortedSet 或 Comparable 模型即可对列表输出进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2028301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com