假设我的标记看起来像这样:
<span wicket:id="text">Some text that I'd like to read</span>
是否有可能在某处获取标签正文的内容,还是被wicket无法删除?
修改:
我的目的是实现某种简单的CMS。用户需要能够以tex>a^2</tex>
的形式输入LaTeX公式,然后我将使用RenderedDynamicImageResource进行渲染。其他标签需要以类似的方式解释。我设想分两步执行此操作Panel
,如下所示:
public class LightweightMarkupPanel extends Panel implements IComponentResolver {
public LightweightMarkupPanel ( String id ) {
super( id );
}
@Override
public MarkupStream getAssociatedMarkupStream( boolean throwException ) {
// Get the lightweight markup and convert it to wicket markup
...
}
@Override
public boolean resolve( MarkupContainer container, MarkupStream markupStream, ComponentTag tag ) {
// AutoAdd components as needed
...
}
}
我一直在努力解决这个问题,所以也许我正朝着错误的方向寻找。
答案 0 :(得分:4)
Component的MarkupStream
对象包含原始HTML正文。
您可以使用markupStream.get()。toString()方法检索它,如下所示:
// <span wicket:id="message">message will be here</span>
add(new Label("message", "If you see this message ..."){
@Override
protected void onComponentTagBody(
MarkupStream markupStream, ComponentTag openTag) {
markupStream.get(); // "message will be here"
super.onComponentTagBody(markupStream, openTag);
}
});