在Grails GSP中从用户类springSecurityService读取未生成的属性

在Grails GSP中从用户类springSecurityService读取未生成的属性,grails,spring-security,Grails,Spring Security,我正在用Grails编写一个更新用户数据表单。在更新之前,它必须在字段中显示旧用户数据。这是本表格的一部分: <g:form class="form-signin" controller="VisitorSpace"> <label for="login" class="sr-only">Login</label> <g:textField id="login" class="form-control" name="login" plac

我正在用Grails编写一个更新用户数据表单。在更新之前,它必须在字段中显示旧用户数据。这是本表格的一部分:

<g:form class="form-signin" controller="VisitorSpace">
    <label for="login" class="sr-only">Login</label>
    <g:textField id="login" class="form-control" name="login" placeholder="Login"
        value="${applicationContext.springSecurityService.principal.username}" required="" autofocus=""/>
    <label for="firstName" class="sr-only">Your name</label>
    <g:textField id="firstName" class="form-control" name="firstName" placeholder="Your name"
        value="${applicationContext.springSecurityService.principal.firstName}" required="" type="text"/>
...
</g:form>
域类的已生成用户名属性获取正确,但在尝试请求未生成的firstName属性时,出现错误:

URI:/restorator/visitorSpace/editPrivateDataClass:groovy.lang.MissingPropertyExceptionMessage:
No such property: firstName for class: grails.plugin.springsecurity.userdetails.GrailsUser

解决了。我通过使用参数渲染gsp解决了这个问题。 gsp控制器的渲染操作:

def editPrivateData(){
        def user = springSecurityService.currentUser
        render (view:'editPrivateData.gsp', model: [user: user])
    }
以普惠制形式使用:

<g:textField id="firstName" class="form-control" name="firstName" placeholder="Your name" var = "user" value="${user.firstName}" required="" type="text"/>
<g:textField id="firstName" class="form-control" name="firstName" placeholder="Your name" var = "user" value="${user.firstName}" required="" type="text"/>