Чтобы решить эту проблему, мне пришлось расширить несколько классов.В частности, мне нужно было переопределить поведение org.apache.wicket.markup.html.link.AbstractLink.disableLink (окончательный тег ComponentTag)
Именно в функции disableLink класса AbstractLink тег «a» являетсяизменено на "span" и атрибуты href и onclick удалены.Сначала я вернулся к PagingNavigator и расширил это следующим образом:
public class DreamPagingNavigator extends PagingNavigator {
public DreamPagingNavigator(String id, IPageable pageable) {
super(id, pageable);
}
public DreamPagingNavigator(String id, IPageable pageable, IPagingLabelProvider labelProvider) {
super(id, pageable, labelProvider);
}
@Override
protected PagingNavigation newNavigation(final String id, final IPageable pageable,
final IPagingLabelProvider labelProvider) {
return new DreamPagingNavigation(id, pageable, labelProvider);
}
@Override
protected AbstractLink newPagingNavigationIncrementLink(String id, IPageable pageable,
int increment) {
return new DreamPagingNavigationIncrementLink<Void>(id, pageable, increment);
}
@Override
protected AbstractLink newPagingNavigationLink(String id, IPageable pageable, int pageNumber) {
return new DreamPagingNavigationLink<Void>(id, pageable, pageNumber);
}
}
Для моей темы «Dream» это позволило мне переопределить newPagingNavigationLink, newPagingNavigationIncrementLink и т. Д. Моя реализация для PagingNavigationLink (и др.) Затем измениласьповедение отключения, например:
public class DreamPagingNavigationLink<T> extends PagingNavigationLink<T> {
public DreamPagingNavigationLink(String id, IPageable pageable, long pageNumber) {
super(id, pageable, pageNumber);
}
@Override
protected void disableLink(final ComponentTag tag)
{
// if the tag is an anchor proper
if (tag.getName().equalsIgnoreCase("a") || tag.getName().equalsIgnoreCase("link") ||
tag.getName().equalsIgnoreCase("area"))
{
// Remove any href from the old link
tag.remove("href");
tag.remove("onclick");
}
// if the tag is a button or input
else if ("button".equalsIgnoreCase(tag.getName()) ||
"input".equalsIgnoreCase(tag.getName()))
{
tag.put("disabled", "disabled");
}
}
}
Вместо того, чтобы менять тег «a» на «span», я просто удаляю атрибуты href и onclick.
Теперь я получаютег привязки отображается без ссылки.