Как поставить параметр на ссылку калитки в HTML? - PullRequest
1 голос
/ 18 июля 2011

У калитки есть несколько вариантов создания ссылок.

например. это

<wicket:link><a href="Page2.html?productId=1694969292874602935">Go to Page 2
</a></wicket:link>

Это показывает, что передается в параметре. Тем не менее, мы не можем использовать, так как нам нужна ссылка на страницу для всплывающего окна, а: ссылка на автолинк не делает этого.

Единственный способ сделать ссылку такой:

<a href="#" wicket:id="launchlink">click here</a>

Вопрос, используя вышеприведенные обозначения, как дать ему параметр, который дизайнеры могут вводить? Примерно так:

<a href="#" wicket:id="launchlink" wicket:params="productid=2342">click here</a>

Есть идеи?

Мы могли бы смонтировать страницу, а затем использовать жестко запрограммированную ссылку html, например

    <a href="/mount/launch/?productid=asdf">click here</a>

Однако мы специально не хотим, чтобы эта ссылка была добавлена ​​в закладки, поскольку она зависит от сеанса, вошедшего в систему и т. Д.

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

Ответы [ 2 ]

2 голосов
/ 18 июля 2011

Используйте BookmarkablePageLink, переопределите его метод onInitialize () и используйте org.apache.wicket.Component.getMarkupAttributes (), чтобы получить значение пользовательского атрибута и добавить его к ссылке с помощью org.apache.wicket.markup.html.link.BookmarkablePageLink.setParameter (String, String).

0 голосов
/ 18 июля 2011

Напишите свою собственную реализацию Link.

<a href="#" wicket:id="launchlink" wicket:params="productid=2342">click here</a>

Следовательно, вы должны получить поток разметки. Затем параметры могут быть извлечены с помощью регулярного выражения. Но вам следует использовать другое пространство имен, чтобы избежать конфликтов.

Для начала поищите:

Это не готовый ответ, но я думаю, что это можно сделать без большого количества кода.

...