0

我有一个 PlanAction 控制器和志愿者控制器。PlanAction有很多志愿者,志愿者属于planAction。我想根据用户勾选的代表单独 planAction 的复选框创建一个志愿者。

我尝试了 remoteFunction 但无法让它工作,因为在 remoteFunction 上并没有真正调用 toggleBusCheck 方法。

planAction create gsp 具有以下语法,用于使用 id 和 params 调用远程函数来创建志愿者

<g:each in="${familyValueInstance?.planAction}" status="p" var="action">
                    <p>

                    <g:checkBox name='volunteer' value="${action.id}" checked="" onchange="${remoteFunction(controller:'volunteer', action:'toggleBusCheck', id:action.id)}" /> ${action.actionsup}</p>

                  </g:each>

志愿者控制器中的方法

def toggleBusCheck = {
    volunteerInstance = new Volunteer(params)
    volunteerInstance.userAccount = UserAccount.get(session.selectedUser.id)
    volunteerInstance.planAction = params.planAction
    if (!volunteerInstance.hasErrors() && volunteerInstance.save(flush:true)) {
     flash.message = "familyValue.created"
     flash.defaultMessage = "Volunteer Created"
     redirect(action: "planList") 
    }
    redirect(action: "planList") 
  }

这是我在尝试检查是否调用了 toggleBusCheck 方法时遇到的错误

java.lang.IllegalArgumentException: Cannot invoke whanauora.values.Volunteer.setPlanAction on bean class 'class whanauora.values.Volunteer' - java.lang.ClassCastException@4c1232f6 - had objects of type "java.lang.String" but expected signature "whanauora.values.PlanAction"
4

0 回答 0