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

このコードを と などの 2 つのレイアウト ビューに配置し、各 gsp ビューの でそれを使用して宣言しますlayout/main.gsplayout/custom.gsp

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

また

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

写真などのユーザー情報にアクセスするには、Spring セキュリティの<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 に答える