Wicket中的动态HTML属性

时间:2011-10-27 21:38:26

标签: wicket

我知道有几种方法可以做到这一点,但我正在寻找最佳方式(我是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 个答案:

答案 0 :(得分:7)

您可以使用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的更多详细信息,请参阅wicket文档http://wicket.apache.org/apidocs/1.4/org/apache/wicket/AttributeModifier.html