我正在Grails中编写更新或更改用户数据表单。这是我表单的一部分,用户可以在其中更改其旧登录名:

<g:form class="form-signin" controller="VisitorSpace">
    <label for="login" class="sr-only">Логин</label>
    <g:textField id="login" class="form-control" name="login" placeholder="Логин" value="${springSecurityService.principal.username}" required="" autofocus=""/>
...
</g:form>

更新之前必须显示旧的用户数据。我用它:${springSecurityService.principal.username}但是,当我运行此页面时,会出现这样的错误:
Error 500: Internal Server Error
URI:/restorator/visitorSpace/editPrivateDataClass:java.lang.NullPointerExceptionMessage:Cannot get property 'principal' on null object

最佳答案

为此,您必须将springSecurityService通过其模型传递给GSP。如果您不想传递它,可以使用applicationContext.springSecurityService从上下文中提取它,或者使用taglib代替服务。

关于grails - Grails SpringSecurityService:无法在空对象上获取属性 'principal',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29417123/

10-09 00:34