這是我的場景。我正在測試Wicket應用程序,並且將頁面文本wicktetTester.getServletResponse.getDocument
解析爲XML,以便使用XPath查找組件。這是相當昂貴的,所以我想保留dom4j.Document
,直到頁面改變,然後重新構建它。如何從Wicket Page對象中發現它已更改?
我知道當前頁面 - wicketTester.getLastRenderedPage
但如果我例如提交表單並保持在同一頁面上,則Page
對象是同一個對象。我可以查詢頁面的哪些屬性知道它已被重新渲染,並且我需要重建我的DOM?
public Document getDocument() {
if (tester.getLastRenderedPage() != lastPageParsed && SOME_OTHER_TEST) {
cachedDocument = parse(tester.getServletResponse().getDocument();
lastPageParsed = tester.getLastRenderedPage();
}
return cachedDocument;
}
_但是,如果我例如提交一個表單並保持在同一頁面上,那麼Page對象不會改變_通常情況下這是不正確的。當您提交表單時,當前頁面會被重新渲染。結果是否與HTML輸出相同取決於您的頁面。 – biziclop
取決於你對變化的定義 - 對象身份或狀態 - 我已經澄清了這個問題 - 「頁面」仍然是同一個對象,但它的狀態發生了變化。我想知道如果沒有重新渲染,狀態是不同的。 –