Динамически добавлять ссылки в строку в калитке - PullRequest
2 голосов
/ 16 июня 2011

У меня есть строка (сообщение пользователя), и я хотел бы найти в ней (используя regexp) специальные коды и заменить их ссылками. (Например, @user будет заменено на <a href="wicket-url-to-user-profile">user</a> вещь.) Как это можно сделать в калитке? Я не спрашиваю о регулярных выражениях, это вопрос, ориентированный на калитки.

Ответы [ 2 ]

4 голосов
/ 16 июня 2011

На самом деле, у Wicket есть очень мощная функция для этого.

Допустим, это ваша строка локализации с ключом "some.resource.key":

This is a ${user}.

Затем вы добавляете в шаблон Wicket следующее:

<wicket:message key="some.resource.key">
    <a wicket:id="user">user</a>
</wicket:message>

На странице (или панели) Wicket просто добавьте свою ссылку, как если бы вы добавляли ее на уровень, на котором вы разместили калитку: сообщение:

add(new Link("user"));

Теперь ссылка - вы можете использовать любую реализацию ссылки или любой другой понравившийся вам компонент - отображается правильно и встроена в вашу локализованную строку.

1 голос
/ 17 июня 2011

У калитки есть IResponseFilter.С этим вы можете постобработать окончательный HTML.Т.е. вы можете искать $ {что-нибудь} и заменить его на «все, что вы хотите».Чтобы создать красивые URL-адреса, я предлагаю вам смонтировать определенные страницы для конкретных объектов домена, например Application # mountPage ("/ users / $ {user}", UsersPage.class), и создать URL-адреса с помощью: RequestCycle.get ().urlFor (UsersPage.class, pageParameters), где «pageParameters» содержит запись с ключом «user» и значением «все, что вы извлекли с помощью RegEx».

...