gpt4 book ai didi

grails - 更新父项和子项抛出越界异常

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

我有两个类一个父类:

class parentItem{
User user

Date startTime
Date endTime
------

Date dateCreated
Date lastUpdated

static hasMany = [ childItems: ChildItem ]

和一个 child 类
class ChildItem{


static belongsTo = [parent : ParentItem]
---------
Date time
Date dateCreated
Date lastUpdated

在允许编辑项目的 gsp 文件中,我有一个表格,其中的行如下所示:
<table id="childDataTable" class="childData">
<g:each in="${ParentInstance?.childItems?.sort{it.id}}" var="childItem" status="i">
<tr class="childRow">
<td>
<g:hiddenField name="childItems[${i}].id" value="${childItem.id}"/</td>
------
<td>
<g:textField name="childItems[${i}].time" class="time" value="${childItem.time}"/>

</td>
<td><a href="#" class="removeButton">&#10006;</a></td>
</tr>
</g:each>
</table>

所以我的问题源于这样一个事实,即在 Controller 中我试图更新这个 parentItem,其中一些 childItem 数据也可能已更改。我需要 parentItem 和 childItems 的集合来更新和保存。

在 Controller 中我试过这个
def parentInstance = ParentItem.get(params.id)
bindData(parentInstance, params)

我试过了
def parentInstance = ParentItem.get(params.id
parentInstance.properties = params

两种方式我都得到了越界异常

在我有两个子项的情况下,消息如下所示:
Index: 1, Size: 1. Stacktrace follows:
java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
at java.util.ArrayList.rangeCheck(ArrayList.java:604)
at java.util.ArrayList.get(ArrayList.java:382)
at com.sexingtechnologies.laboratory.ParentItemController$_closure7$$EOChoLzu.doCall(ParentItemController.groovy:158)
at grails.plugin.multitenant.core.servlet.CurrentTenantServletFilter.doFilter(CurrentTenantServletFilter.java:53)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)

我不确定错误存在于何处或如何解决。

我试图从 params 映射中提取 childItems,但未能成功。

您的任何帮助将不胜感激

最佳答案

也许你可以初始化 childItems在数据绑定(bind)之前像这样:

def parentInstance = ParentItem.get(params.id)
parentInstance.childItems = [].withDefault { new ChildItem() }
bindData(parentInstance, params)

See here for more about the withDefault method .

关于grails - 更新父项和子项抛出越界异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17883910/

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