<div class='nav'>
<span class="menuButton"><g:link controller="user" class="create" action="create">New User</g:link></span>
<wa:ifUser>
<span class="menuButton"><g:link controller="album" class="create" action="create">New Album</g:link></span>
<wa:ifUserHasAlbums>
<span class="menuButton"><g:link controller="picture" class="create" action="create">New Picture</g:link></span>
</wa:ifUserHasAlbums>
</wa:ifUser>
</div>
”<wa:ifUser>”、”<wa:ifUserHasAlbums>”の定義は$ALBUM_HOME/grails-app/taglib/WebAlbumTagLib.groovyに記述されています。
static namespace = "wa"
def ifUser = { attrs, body ->
boolean valid = session.userId != null
if (attrs.not) {
valid = !valid
}
if (valid) {
out << body()
}
}
def ifUserHasAlbums = { attrs, body ->
boolean valid = session.albumsCount && session.albumsCount > 0
if (attrs.not) {
valid = !valid
}
if (valid) {
out << body()
}
}
”attr.not”は<wa:ifUser not="true">と書いた場合trueになるものです。”body()”はタグに囲まれた部分のことです。
アルバムを2つ持つ”jhl”でログインすると”New Picture”リンクが出てきます。
クリックしてみましょう。
表示された”Create Picture”画面に従って操作します。
”Show Album”画面に戻ってpaginatorを操作すると、エラーが出てしまいます。
$ALBUM_HOME/grails-app/view/album/show.gspのpaginator部分を次のように直しましょう。
<g:paginate
total="${paginateCount}"
controller="album"
action="show"
id="${album.id}"
max="2" />
0 件のコメント:
コメントを投稿