0

我正在使用它在系统的每个页面上显示个人资料图片,但仅适用于少数页面。

<g:if test="${userAccount?.photo != null  && !(userAccount?.photo.empty)}" >
      <g:link controller="userAccount" action="myInfo" id="${userAccount.id}">
        <img id="profile_photo" src="${createLink(controller:'image', action:'profilePhoto', id:userAccount.photo, params:[maxWidth:190.0,maxHeight:190.0])}" alt="${userAccount.photo}" title="${userAccount.displayName()}" />
      </g:link>
    </g:if>
    <g:else>
      <g:link controller="userAccount" action="myInfo" id="${userAccount.id}">
        <img id="profile_photo" src="${resource(dir:'images', file:'no_image_blue.gif')}" alt="No Image" width="200" height="200"/>
      </g:link>  
    </g:else>

我也在Spring security plugin为这个项目使用 2 种布局。任何人都可以在这里帮助我使图像显示在整个系统上。

**

我只需要知道如何将用户照片变量存储到会话中,以便我可以在应用程序的任何位置访问它。

**

4

1 回答 1

0

将此代码放入两个布局视图中,例如,layout/main.gsplayout/custom.gsp,并在每个 gsp 视图中声明使用它,如

<meta name="layout" content="main">

或者

<meta name="layout" content="custom">

要访问照片等用户信息,请利用 spring security 的<sec:loggedInUserInfo>标签:

<g:set var="photo"  value="${sec.loggedInUserInfo([field:'photo'])}"/>
<g:set var="userId"  value="${sec.loggedInUserInfo([field:'id'])}"/>

<g:if test="${photo != null  && !(photo.empty)}" >
    <g:link controller="userAccount" action="myInfo" id="${userId}">
        <img id="profile_photo" src="${createLink(controller:'image', action:'profilePhoto', id:photo, params:[maxWidth:190.0,maxHeight:190.0])}" alt="${photo}" />
    </g:link>
</g:if>
<g:else>
    <g:link controller="userAccount" action="myInfo" id="${id}">
        <img id="profile_photo" src="${resource(dir:'images', file:'no_image_blue.gif')}" alt="No Image" width="200" height="200"/>
    </g:link>  
</g:else>
于 2013-01-15T05:11:33.930 回答