渲染Wicket组件

Juh*_*älä 0 html rendering wicket

我有一个附加到Page的Wicket面板.我需要获取面板生成的呈现的HTML代码.我需要面板生成的相同HTML以输出发送到浏览器的内容.我不是整个页面的HTML.

我的面板是只读的,因此重新生成输出无关紧要.

private MyPanel myPanel;

public void onIntialize() {
   super.onInitialize();
   add(myPanel = new MyPanel());
}

new AjaxLink() {
  public void onClick(AjaxRequestTarget target) {
    String myPanelHtml = // obtain html somehow from myPanel
    // do stuff with myPanelHtml
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我需要从不是面板的组件渲染HTML,情况会有所不同吗?不提供标记的组件.

spu*_*uas 5

从Wicket 6.7.0开始,它可以很容易地完成

ComponentRenderer.render(Component c)

从wicket页面:

将页面或组件呈现为String

支持用户列表的一个问题是能够将页面或组件呈现给String,以便您可以使用Wicket呈现HTML电子邮件.现在,您可以使用ComponentRenderer实际执行此操作,而无需使用其他不太明显的方法.

ComponentRenderer公开了两个方法:renderComponent和renderPage,它们完全按照它们的名字建议.快乐邮件!

虽然用于邮寄,但您当然也可以将其用于其他目的