Wicket で、タグに記述する wicket:id を取り除く場合、
通常は、WebApplication の init() の中で、以下を実行する。
getMarkupSettings().setStripWicketTags(true);
そうではなく、1つのタグの wicket:id を取り除く場合は、
対応するコンポーネントにビヘビアを追加する。
public class StripWicketTagsBehavior extends AbstractBehavior{
@Override
public void beforeRender(Component cpt){
cpt.getApplication().getMarkupSettings().setStripWicketTags(true);
}
@Override
public void onRendered(Component cpt){
cpt.getApplication().getMarkupSettings().setStripWicketTags(false);
}
}
このようなビヘビアを用意して、Pageクラスで
Component c = // 何か.....
c.add(new StripWicketTagsBehavior());
add(c);
とすると、Component c のタグだけ wicket:id が取り除かれる。
ページの継承を行った場合、
<wicket:child><wicket:extend>
:
</wicket:extend></wicket:child>
何もしないとこれが残されるが、WebApplication の init() の中で
getMarkupSettings().setStripWicketTags(true);
を、実行した場合は、<wicket:child> と <wicket:extend>は、跡形もなく消える。