Пейджер taglib не переименовывает экспортированные переменные URL, как описано - PullRequest
0 голосов
/ 23 сентября 2011

Я использую это решение для пейджера taglib , оно генерирует ссылки на страницы почти в соответствии с инструкциями.Он предлагает способ настройки имен переменных, которые используются для итерации по набору данных, и это именно то, что вызывает проблемы.

Вот как я настроил до сих пор

<pg:pager url="/search" 
items="1000" 
maxPageItems="10"
export="from=offset,currentPageNumber=pageNumber"
scope="request">
<pg:param name="w" value="${w}"/>
<pg:param name="e" value="${e}"/>

<pg:first unless="current"><a href="${pageUrl}"> &lt;&lt; first</a>&nbsp;</pg:first>
<pg:prev><a href="${pageUrl}"> &lt; prev</a>&nbsp;</pg:prev>    
<pg:pages>
    <c:choose>
        <c:when test="${pageNumber == currentPageNumber}">
            ${pageNumber}
        </c:when>
        <c:otherwise>
            <a href="${pageUrl}">${pageNumber}</a>
        </c:otherwise>
    </c:choose>
&nbsp;</pg:pages>
<pg:next><a href="${pageUrl}">next &gt;</a>&nbsp;</pg:next>
<pg:last unless="current"><a href="${pageUrl}">last &gt;&gt;</a></pg:last>
</pg:pager>

Обратите внимание, что на основе документации вы можете управлять именем экспортируемых переменных

Выражение экспорта export = "versatz = offset" приведет к тому, что переменная pageOffset будетбыть доступным как <% = versatz%>

Как видите, я тоже пытаюсь переименовать смещение в из (Это то, чтоожидается бэкэнд)

export="from=offset,currentPageNumber=pageNumber"

Но все сгенерированные ссылки имеют вид ( Обратите внимание на pager.offset = [число] )

http://localhost:8080/search?w=param1&e=param2&pager.offset=10

Что это-а что я делаю не так?Кто-нибудь экспериментировал с этим taglib?

Любая обратная связь высоко ценится

1 Ответ

1 голос
/ 19 мая 2012

Я понимаю, что это немного поздно, но я столкнулся с той же проблемой, используя упомянутый выше пейджер taglib для поддержки нескольких уникальных пейджеров на одной странице. Надеюсь, кто-то найдет это полезным ...

Похоже, имя этого параметра вставлено в исходный код тега пейджера:

static final String OFFSET_PARAM = ".offset";

Тем не менее, существует атрибут тега id, значение которого добавляется к константе OFFSET_PARAM выше во время рендеринга тега. Его значение по умолчанию pager:

static final String DEFAULT_ID = "pager";

Эти два значения объединяются в поле idOffsetParam, которое является окончательным именем параметра, используемым внутри тега пейджера:

private String idOffsetParam = DEFAULT_ID+OFFSET_PARAM;

Решение : Если вы укажете свое собственное значение id в объявлении тега, вы получите частичный контроль над отображаемым именем параметра:

<pg:pager 
    id="stackoverflow" 
    url="/search" 
    items="1000"
    ...
    ..
    .

При этом навигационные ссылки будут отображаться как ?stackoverflow.offset=10. Часть .offset параметра останется, но, по крайней мере, вы будете иметь некоторую гибкость в отношении уникальности имени параметра.

...