gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 16:02:09 25 4
gpt4 key购买 nike

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

这是我的域User-class的一部分:
class Person {

transient springSecurityService

String username
String password
boolean enabled = true
boolean accountExpired
boolean accountLocked
boolean passwordExpired

String firstName
String lastName
String email
boolean isAdminCafee = false
static transients = ['springSecurityService']

static constraints = {
username blank: false, unique: true
firstName blank: false
lastName blank: false
password blank: false
email blank: false, unique: true
}
...
}

域类的生成的用户名属性正确获取,但是当我尝试请求未生成的firstName属性时,出现错误:
URI:/restorator/visitorSpace/editPrivateDataClass:groovy.lang.MissingPropertyExceptionMessage:
No such property: firstName for class: grails.plugin.springsecurity.userdetails.GrailsUser

最佳答案

解决了。我已经通过使用参数渲染gsp解决了这个问题。
gsp-controller的渲染 Action :

def editPrivateData(){
def user = springSecurityService.currentUser
render (view:'editPrivateData.gsp', model: [user: user])
}

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

关于grails - 在Grails GSP中从用户类springSecurityService读取未生成的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29439701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com