如何从grails中的不同控制器检索和更新复选框状态?

时间:2013-09-26 10:59:22

标签: grails illegalargumentexception

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

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

planAction create gsp具有以下syntex,用于调用具有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"

0 个答案:

没有答案