Grails 从登录用户访问另一个对象

Grails 从登录用户访问另一个对象,grails,spring-security,gsp,Grails,Spring Security,Gsp,我在Grails中使用Spring安全性。我的用户有用户名,它还引用了另一个名为Seller的域对象 // Every user will usually be associated with a Seller static belongsTo = [seller: Seller]; 在GSPs中,我可以通过以下操作显示登录用户的用户名: <sec:ifLoggedIn>Hello <sec:username/> </sec:ifLoggedIn> 有什么

我在Grails中使用Spring安全性。我的用户有用户名,它还引用了另一个名为Seller的域对象

// Every user will usually be associated with a Seller
static belongsTo = [seller: Seller];
在GSPs中,我可以通过以下操作显示登录用户的用户名:

<sec:ifLoggedIn>Hello <sec:username/> </sec:ifLoggedIn>

有什么想法吗?

您可以创建自己的标记库来呈现当前用户的名称,如

class TestTagLib {
    static final namespace = 'myTag'

    def name = { attrs ->
        User user = springSecurityService.currentUser as User
        out << user.name
    }
}
类TestTagLib{
静态最终命名空间='myTag'
def名称={attrs->
用户用户=springSecurityService.currentUser作为用户

out尽管前面的答案更灵活,但如果您只想显示登录的用户名,可以尝试以下任一标记:

<sec:ifLoggedIn>Hello ${sec.username} </sec:ifLoggedIn>
Hello${sec.username}

Hello${sec.loggedInUserInfo(字段:'username')}
class TestTagLib {
    static final namespace = 'myTag'

    def name = { attrs ->
        User user = springSecurityService.currentUser as User
        out << user.name
    }
}
<sec:ifLoggedIn>Hello <sec:username/> <myTag:name/> </sec:ifLoggedIn>
<sec:ifLoggedIn>Hello ${sec.username} </sec:ifLoggedIn>
<sec:ifLoggedIn>Hello ${sec.loggedInUserInfo(field:'username')} </sec:ifLoggedIn>