Как обновить определенные свойства класса домена Grails? - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь обновить пароль пользователя, вошедшего в систему.Но это показывает мне исключение нулевой точки.

Профиль контроллера:

def doPasswordChange(){
    def response = authenticationService.getMember()
    if (!response) {
        flash.message = AppUtil.infoMessage(g.message(code: "invalid.entity"), false)
        redirect(controller: "profile", action: "changePassword")
    } else {
        response = profileService.doPasswordChange(response, params)
        if (!response.isSuccess) {
            flash.redirectParams = response.model
            flash.message = AppUtil.infoMessage(g.message(code: "password.not.change"), false)
            redirect(controller: "profile", action: "changePassword")
        } else {
            flash.message = AppUtil.infoMessage(g.message(code: "updated"))
            redirect(controller: "profile", action: "index")
        }
    }
} 

ProfileService:

def doPasswordChange(Member member, GrailsParameterMap params){
    params.password = params.password.encodeAsMD5()
    params.newPassword = params.newPassword.encodeAsMD5()
    params.confirmPassword = params.confirmPassword.encodeAsMD5()
    def response = AppUtil.saveResponse(false, member)
    if(member.password==params.password && params.confirmPassword==params.newPassword){
        member.password = params.newPassword     //this line is gives me  null point exception
        if(member.validate()){
            log.warn myDomainObj.errors.allErrors.join(' \n')
            member.save(flush: true, failOnError:true)
            response.isSuccess = true
        }
        else println("ok")
    }
    return response
}

Дает мне эту ошибку:

2019-07-09 01: 55: 04.284 ОШИБКА --- [nio-8080-exec-8] ogweb.errors.GrailsExceptionResolver: NullPointerException возникла при обработке запроса: [POST] / profile / doPasswordChange - параметры: пароль: abcdqrty newPassword: 12345 ПодтверждениеПароль: 12345 логин: Изменение стека трассировки следующим образом:

java.lang.reflect.InvocationTargetException: null at org.grails.core.DefaultGrailsControllerClass $ ReflectionInvoker.invoke (DefaultGrailsControllerClass.java:g:.core.DefaultGrailsControllerClass.invoke (DefaultGrailsControllerClass.java:188) в org.grails.web.mapping.mvc.UrlMappingsInfoHandlerAdapter.handle (UrlMappingsInfoHandlerAdapter.groovy: 90.serv.: 967) в org.springframework.web.servlet.DispatcherServlet.doService (DispatcherServlet.java:901) по адресу org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet.java:970) по адресу org.springframework.web.servlet.FrameworkServlet.doPost (FrameworkServlet.rawe.rag.prg.web: org..servlet..java: 77) в org.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal (HiddenHttpMethodFilter.java:67) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.conv.java: 11)Worker.run (ThreadPoolExecutor.java:624) в java.lang.Thread.run (Thread.java:748), вызванный: java.lang.NullPointerException: пустым в org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor.getWotto ()ClosureEventTriggeringInterceptor.java:206..hibernate.action.internal.EntityUpdateAction.preUpdate (EntityUpdateAction.java:244) в org.hibernate.action.internal.EntityUpdateAction.execute (EntityUpdateAction.java:118) в org.hibernate.enueueuections.java: 589) в org.hibernate.engine.spi.ActionQueue.executeActions (ActionQueue.java:463) в org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions (AbstractFlushingEventListener.java:337) в org.h.internal.DefaultFlushEventListener.onFlush (DefaultFlushEventListener.java:39) в org.hibernate.internal.SessionImpl.flush (SessionImpl.java:1295) в org.grails.orm.hibernate.AbstractHibernateGormInstanceApi.flushSessionateGormInstanceApi..orm.hibernate.GrailsHibernateTemplate.: 251) в org.grails.orm.hibernate.AbstractHibernateGormInstanceApi.save (AbstractHibernateGormInstanceApi.groovy: 168) вorg.grails.datastore.gorm.GormEntity $ Trait $ Helper.save (GormEntity.groovy: 151) в com.santho.bitmascot.ProfileService.doPasswordChange (ProfileService.groovy: 15) в com.santho.bitmascot.ProfileSwordChan (ProfileController.groovy: 24) ... пропущено 14 общих фреймов

Я пробовал только назначать новое значение другим свойствам класса члена.Та же ошибка.Как я могу решить это?

1 Ответ

0 голосов
/ 09 июля 2019
ввиду

добавить свойство useToken = "true" в форму

<g:form  name="applyForm" useToken="true">
  //ur code
  </g:form>
в контроллере

поместите код вашего действия в withForm {}

withForm {
//ur origin code in action
}.invalidToken {
//what to do when token invalidate
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...