Wicket中的动态HTML属性

Sne*_*kse 2 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>
Run Code Online (Sandbox Code Playgroud)

ste*_*mac 7

您可以使用AttributeModifier更改任何给定标记的特定属性,您只需要在标记中添加wicket:id,以使wicket能够检测您想要更改的位置.

例如.在HTML替换中:

<div class="corpAppTemplate" corp:app="{APP_TITLE}" corp:title="{PAGE_TITLE}">
Run Code Online (Sandbox Code Playgroud)

<div wicket:id="template" class="corpAppTemplate" corp:app="{APP_TITLE}" corp:title="{PAGE_TITLE}">
Run Code Online (Sandbox Code Playgroud)

并将以下内容添加到您的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}")));
Run Code Online (Sandbox Code Playgroud)

有关AttributeModifier的更多详细信息,请参阅wicket文档http://wicket.apache.org/apidocs/1.4/org/apache/wicket/AttributeModifier.html