Wicket - 获取标记元素的主体

时间:2011-01-05 22:31:24

标签: java wicket

假设我的标记看起来像这样:

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

我一直在努力解决这个问题,所以也许我正朝着错误的方向寻找。

1 个答案:

答案 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);
     }
});