我正在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/