哈囉大家好,這裡是感覺最近天氣很好的小編過路君子
最近天天出大太陽,還能看到湛藍的天空,整個心情都開闊了起來
那假設我們在同個目錄下有兩個網頁且我們要由 hello.html 連結至 another.html。
(所有圖片點擊都可以放大、變高清)
如果 another.java 在不同目錄下,例如:上一層目錄,根據使用的方法不同,會有不同的寫法,之後會再個別詳細指出。
這篇的目錄結構是承接這篇:【Maven】[Wicket](Java) 如何部署Wicket到Wildfly內@小編過路君子 ,這邊只貼出不同之處而已,完整的目錄結構要到那篇去看喔。
使用<wicket:link>
使用上的感覺就很像原生的 <a>,可以使用相對連結來連結兩個檔案。
然後在這裡的 another.html 和 another.java 的內容不重要,不會影響到我們的超連結。
hello.html:
<!doctype html> <html> <head> <title>Link to another page with wicket:link</title> </head> <body> <div> <wicket:link> <p><a href="./another.html">Go to another page</a></p> </wicket:link> </div> </body> </html>
hello.java:
package taiwan.webpage; import org.apache.wicket.markup.html.WebPage; public class hello extends WebPage { public hello() {} }
實際運作畫面:
當我們今天沒有將頁面掛載的時候(以後會寫一篇來談談),預設的網址又臭又長。
換言之,可以不使用 <wicket:link>,直接寫 <a> 然後 href 到上述的網址也是可以的,但是這樣每次都要去翻筆記出來看這又臭又長的東西,一點都不優雅囉。
所以在未掛載頁面時,小編的首頁會放在 wicket/bookmarkable/taiwan.webpage.hello 這,簡單吧!
使用<wicket:id>
相對於 <wicket:link> 不需要任何 Java 程式碼支持,若要使用 <wicket:id> 則需要寫一點 Java 來產生連結的效果。
hello.html:
<!doctype html> <html> <head> <title>Link to another page with wicket:id</title> </head> <body> <p><a wicket:id="gotoAnother">Go to another page</a></p> </body> </html>
hello.java:
package taiwan.webpage; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.link.Link; import taiwan.webpage.another; public class hello extends WebPage { public hello() { add(new Link<Void>("gotoAnother") { @Override public void onClick() {setResponsePage(another.class);} }); } }
實際運作畫面:
對,執行效果一模一樣完全沒有差別。
感覺好像很沒有用,那這個功能為什麼還要存在?因為這個方法最重要的效果就是製作動態響應頁面啊,詳細資訊可以參照下方,因為不是今天主題,所以 Pass!
如何使用 <wicket:id> 來做動態響應或是製作一個簡單的登入功能可以參考這篇: 【Wickct】如何製作一個簡單的動態響應頁面@小編過路君子 。
後記
其實上文所有內容都是從官方文檔裡整理出來的,官方文檔真的算是寫得非常清楚以及有系統性的文章,跟目前中文介紹 wicket 比的話。
而且官方文檔只有一頁,很長很長,有時可以用在一起的概念可能中間還插一些其他的功能解釋,很常不小心就又找不到剛剛看的重點在哪裡。
綜合以上原因,這篇才就此誕生。