2010-01-18 8 views
14

MarkupContainer의 마크 업을 동적으로 생성 할 수 있습니까? 즉, HTML 파일을 저장하지 않고 동적으로 마크 업을 생성 할 수 있습니까?위젯의 동적 마크 업

CMS와 비슷한 기능을 제공하기 위해 마크 업을 데이터베이스에서 일반 문자열로 읽는 방법에 대해 생각했습니다.

+0

좋아요! JTexy 경량 마크 업 언어 (http://code.google.com/p/jtexy/)와 함께 사용하겠습니다. –

답변

9

흥미로운 질문이지만 가능한지 확실하지 않지만, 내 생각에 IMarkupLoaderIMarkupResourceStreamProvider 인터페이스를보고 수업을 구현하고 거기에서 얼마나 멀리 떨어져 있는지보아야 할 것입니다.
나는 이것을 실제로 얻은 것을 발견하거나 구현하는 것에 관심이 있습니다!

+4

힌트를 보내 주셔서 감사합니다. 그랬어! MarkupContainer는'IMarkupResourceStreamProvider'와 그 메소드'getMarkupResourceStream()'을 구현해야합니다. 또한'AbstractResourceStream'에서 (예를 들어) 파생 된 클래스를 만듭니다. 거기에서'InputStream'을 반환하는 메소드를 구현할 수 있습니다. 'getMarkupResourceStream()'은이 새로운 클래스의 인스턴스를 리턴한다. javadoc에서는 이것이 캐싱에 대해서도 투명합니다. – Wolfgang

+1

이 내용은 참조 가이드 [17.5 코드에서 HTML 마크 업 생성] (http://wicket.apache.org/guide/guide/advanced.html#advanced_5)에 잘 설명되어 있습니다. – aioobe

-1

비활성화 마크 업 이스케이프와 라벨을 사용하는 것입니다 할 수있는 또 다른 (간단) 방법 :이 보안 위반에 (HTML/JS 주입)를 초래할 수로

Label<String> label = new Label<String>("id", "<a href='....'><span>foo<em>bar</em></span></a>"); 
label.setEscapeModelStrings(false); 
add(label); 

는하지만주의해야합니다.

+0

당신의 아이디어에 감사드립니다. 그래도 내가 찾고 있던 것인지 확실하지 않습니다. MarkupContainer에서 사용하는 동적 마크 업을 사용하고 싶습니다. 즉, 마크 업의 특정 개찰 : ids가 필요하며 해당 식별자에 매핑되어야하는 컨테이너에 추가 구성 요소를 추가하고 싶습니다. 나는 당신의 해결책으로는 불가능하다고 두려워합니다. – Wolfgang

+0

네가 맞다. 내 잘못이야. – Jawher

+0

이것은 보안 침해뿐만 아니라 일반 HTML을 표시하는 레이블 남용을 고려하면 정말 나쁜 생각입니다. – RobAu