2011-02-17 3 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을 사용할 수 있습니다. Javadoc의에서

:

당신은 당신이 자동으로 하이퍼 링크 등의 데이터의 그 조각을 표시 할 수 있습니다, 표시하는 데이터의 전자 메일 주소 또는 웹 URL이있는 경우, 당신은 어떤 조치를 취할 필요가 없습니다 해당 데이터를 변환합니다.

3

한 가지 방법은 Label을 연장하고 같은

뭔가 onComponentTagBody 무시하는 것입니다 : 당신은 또한 사용자 정의 IModel 또는 IConverter으로이 작업을 수행 할 수

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

을하지만 난 라벨 접근 방식을 선호합니다.

관련 문제