如何将sec:loggedInUserInfo尝试转换为gsp中的变量

|| 我想获取sec:loggedInUserInfo的值并尝试进入名为user的变量。 我的代码如下所示:
<sec:loggedInUserInfo field=\"username\" /> 

<%
  def user = *value of field loggedInUserInfo *
%>
有可能这样做吗?     
已邀请:
这比较简单,对我来说效果很好:
<g:set var=\"user\" value=\"${sec.username()}\" />
    
要将引用的UserDetails实例的任何字段分配给变量,可以使用:
<g:set var=\"fullName\" value=\"${sec.loggedInUserInfo(field:\'fullName\')}\" />
(另请参阅自定义用户详细信息)     
如果要在gsp中使用用户对象,只需将其作为控制器中模型图的一部分传回即可。在控制器动作中
def user = springSecurityService.getCurrentUser()
render view: \'yourgsp\', model: [user: user]
    

bab

我不确定是否可以直接使用该标签,因此较早找不到,因此我为此制作了自定义标签
<m:userName id=\"${session.SPRING_SECURITY_CONTEXT?.authentication?.principal?.id}\"/>
def userName = { attrs ->
Long id = attrs[\'id\'] ? attrs[\'id\'].toLong() : null
User user = User?.get(id);
out << user?.firstName
}     
我已经创建了一个taglib作为logininUser,它在gsp页面上添加为:
Welcome <g:loggedInUser/> ! 
在我的项目中,每个gsp顶部都显示已登录的用户名。在自定义标签库中,我的代码如下:
def springSecurityService

def loggedInUser={
    if(springSecurityService.getPrincipal().equals(\"anonymousUser\")){
        response.sendRedirect(\"${request.contextPath}/login/auth\")
    }else{
        out <<\"${springSecurityService.currentUser.username}\"
        out << \"\"\" [${link(controller:\"logout\"){\"Logout\"}}]\"\"\"
    }
}
因此它在每个页面上显示为:Welcome USERNAME [Logout]!     

要回复问题请先登录注册