我正在尝试找到一种方法来自动将面板中的链接转换为超链接。例如,用户输入是:
"And here you can find my awesome example: http://example.com"
是否可以在wicket中为每个“http:// ...”文本添加一个锚元素,因此上面的示例将输出
"And here you can find my awesome example: <a href="http://example.com">http://example.com</a>"
代替?
答案 0 :(得分:3)
执行此操作的一种方法是扩展Label并覆盖onComponentTagBody
类似的东西:
public class AnchorizeLabel extends Label {
public AnchorizeLabel(String id, String body) {
super(id, body);
}
@Override
protected void onComponentTagBody(MarkupStream stream, ComponentTag tag) {
String newBody = createAnchors(getDefaultModelObjectAsString());
replaceComponentTagBody(stream, tag, newBody);
}
private String createAnchors(String body) {
// regex magic to create links
}
}
您也可以使用自定义IModel或IConverter完成此操作,但我更喜欢Label方法。
答案 1 :(得分:3)