Wicket で
ExternalLinkは、
add(new ExternalLink("google", "https://www.google.co.jp", Google));
BookmarkableLink は、
以下のような、
<a href="https://www.google.co.jp" wicket:id="link"><wicket:container wicket:id="anchorText"/></a>
JAVA側で、
BookmarkableLink bookmarkableLink = new BookmarkableLink<Void>("link", HogePage.class); bookmarkableLink.add(new Label("label", Model.of("Google")); add(bookmarkableLink);
しかし、setBody
と
/** * Sets the link's body model * * @param bodyModel * @return <code>this</code> for method chaining */ public AbstractLink setBody(final IModel<?> bodyModel) { this.bodyModel = wrap(bodyModel); return this; }
このメソッドを
BookmarkablePageLink bookmarkablePageLink = new BookmarkablePageLink<Void>("link", HogePage.class); bookmarkablePageLink.setBody(Model.of("Google")); add(bookmarkablePageLink)
ExternalLink リンクのsetBody
を
AbstractLink#onComponentTagBody()
でgetBody()
経由で
public void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag) { IModel<?> tmpBodyModel = this.getBody(); if(tmpBodyModel != null && tmpBodyModel.getObject() != null) { this.replaceComponentTagBody(markupStream, openTag, this.getDefaultModelObjectAsString(tmpBodyModel.getObject())); } else { super.onComponentTagBody(markupStream, openTag); } }
これで、
css で
以上です。
コメント