Динамические атрибуты HTML в Wicket - PullRequest
2 голосов
/ 28 октября 2011

Я знаю, что есть несколько способов сделать это, но я ищу лучший способ (я новичок в Wicket).

В приведенном ниже HTML-коде я выделил 2 области, в которых мне нужно заменить несколько фиктивных текстов. Текст, о котором идет речь, это {APP_TITLE} и {PAGE_TITLE}. Я просто хочу заменить их на простые строки.

ВОПРОС

В первом <div>, как лучше всего заменить эти значения без потери содержимого в DIV и атрибутов, которые в настоящее время определяют div (и какие атрибуты будут добавлены в будущем)?

<html lang="en">
<head>
    <!-- Replace here -->
    <title>{APP_TITLE} - {PAGE_TITLE}</title> 
</head>
<body>
    <!-- Replace here -->
    <div class="corpAppTemplate" corp:app="{APP_TITLE}" corp:title="{PAGE_TITLE}">
        <ul class="corpAppMenu"  wicket:id="MenuList">
        </ul>
        <span wicket:id="UserID">UserID</span>
               <wicket:child/>
    </div>
</body>
</html>

1 Ответ

7 голосов
/ 28 октября 2011

Вы можете использовать AttributeModifier для изменения определенных атрибутов для любого данного тега, вам просто нужно добавить wicket: id к тегу, чтобы позволить wicket определить, где вы хотите изменить.

например. В HTML заменить:

<div class="corpAppTemplate" corp:app="{APP_TITLE}" corp:title="{PAGE_TITLE}">

с

<div wicket:id="template" class="corpAppTemplate" corp:app="{APP_TITLE}" corp:title="{PAGE_TITLE}">

И добавьте следующее на свою страницу Java:

template = new WebMarkupContainer("template");
add(template);

template.add(new AttributeModifier("corp:app", true, new Model("{APP_TITLE}")));
template.add(new AttributeModifier("corp:title", true, new Model("{PAGE_TITLE}")));

Подробнее о AttributeModifier см. В документации к калитке http://wicket.apache.org/apidocs/1.4/org/apache/wicket/AttributeModifier.html

...