Я создал свой taglib с помощью команды: "grails create-taglib TimeTag" И был создан тег скелета под названием TimeTagLib.не может получить мой пользовательский taglib для работы
package com.buffer
class TimeTagLib {
static final namespace = 'myTag'
static defaultEncodeAs = [taglib:'html']
//static encodeAsForTags = [tagName: [taglib:'html'], otherTagName: [taglib:'none']]
def weekNo = {attrs, body ->
date = new Date()
def calendar = date.toCalendar()
def week = calendar.get(calendar.WEEK_OF_YEAR)
out << body() << calendar.format('yy') + String.format("%02d", week+attrs.offset)
}
}
и GSP-файла я добавил эту строку:
<g:sortableColumn property="availW01" title="${timetaglib.weekno(offset: '0')}" />
И я получаю следующее сообщение: Сообщение
Request processing failed; nested exception is org.grails.gsp.GroovyPagesException: Error evaluating expression [timetaglib.weekno(offset: '0')] on line [38]: Cannot invoke method weekno() on null object
Caused by
Cannot invoke method weekno() on null object
Я просто не знаю, что делать ... Я думал, что достаточно хорошо разбираюсь в документации, но, видимо, нет. У меня есть grails-3.2.4
================== РЕШЕНИЕ =================================================================================================== =
TagLib:
package com.buffer
class TimeTagLib {
static final namespace = 'myTag'
static defaultEncodeAs = [taglib:'html']
//static encodeAsForTags = [tagName: [taglib:'html'], otherTagName: [taglib:'none']]
def weekNo = {attrs, body ->
Date date = new Date()
def calendar = date.toCalendar()
def week = calendar.get(calendar.WEEK_OF_YEAR)
out << String.format("V%02d", (week+(attrs.offset as Integer)))
}
}
ГСП:
<g:sortableColumn property="availW01" title="${myTag.weekNo(offset: "0")}" />
Чтобы вызвать ваш тег, используйте: '$ {myTag.weekNo (offset: 0)}' –
Да, вы совершенно противны, но у меня также было больше ошибок, о чем вы можете прочитать в комментарии ниже. – larand