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