2011-02-17 52 views
1

我試圖找到一種方法來自動將面板中的鏈接轉換爲超鏈接。因此,例如,用戶輸入的是:將檢票口面板中的鏈接切換到超鏈接

"And here you can find my awesome example: http://example.com "

是在檢票口可以定位元素添加到每個「HTTP:// ......」的文字,所以上面的例子將輸出

"And here you can find my awesome example: <a href="http://example.com">http://example.com</a>"

取而代之?要做到這一點

回答

3

您可以使用建在SmartLinkLabel內的Wicket's。

從的Javadoc:

如果你在數據電子郵件地址或網址時,你都顯示,那麼你就可以自動顯示數據爲超鏈接,這些作品,你會不會採取任何行動轉換該數據。

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 
    } 
} 

你也可以用自定義IModelIConverter做到這一點,但我更喜歡標籤的方法。