0
我有一個面板包含一個ByteArrayResource,ResourceLink指向ByteArrayResource,一個標籤應該顯示相對於資源的URL。我標籤使用link.urlFor(IResourceListener.INTERFACE)
獲得它的價值。當我在頁面上創建兩個面板並使用鏈接在它們之間進行交換時,只有首先添加的面板中的標籤纔會顯示正確的URL。Wicket:面板內無法獲得正確的資源URL
Label from the first panel: ../wicket/page?0-IResourceListener-a_panel-lnk
Label from the second panel: page?1-IResourceListener-a_panel-lnk
正如你可以看到第二面板缺少URL的「../wicket/」的一部分,這是怎麼回事?如何解決呢?
我的面板onInitialize:
@Override
protected void onInitialize() {
super.onInitialize();
csv = new ByteArrayResource("text/csv") {
//Generate the CSV
//...
};
//Create a link to the CSV resource
ResourceLink<Void> link = new ResourceLink<Void>("lnk", csv);
add(link);
//Display the URL to the resource
add(new Label("lbl", (String)link.urlFor(IResourceListener.INTERFACE)));
}
這是我如何添加面板到我的網頁,並更換面板的鏈接:
aPanel = new APanel("a_panel", resultsModel, false);
add(aPanel);
// Swap the panel
add(new Link<Void>("swap") {
private static final long serialVersionUID = 1L;
private Panel alt = new GraphPanel("a_panel", resultsModel, true);
@Override
public void onClick() {
Panel tmp = aPanel;
aPanel.replaceWith(alt);
aPanel = alt;
alt = tmp;
}
});
好吧我想我已經得到了這個部分,但ResourceLink在兩個面板上都生成了正確的相對URL鏈接。我需要做什麼才能在標籤中顯示此網址? – Holm