首個WICKET HELLOL World 報錯Can not determine Markup. Component is not yet connected to a parent.
今年頭次使用WICKET 來開發個WEB 網站來玩玩,從APACHE 網站下載了WICKET 8.0,然後下載對應的PDF官方文件,照抄HELLOWROLD列子,發現牛頭不對馬嘴。8.0不支援文件裡的IMPORT包! 奇怪奇怪真奇怪。或許這也是WICKET 無法火起來的原因吧!
為啥還要使用WICKET呢? 那是因為我是老DELPHI,C++BUILDER RAD工具使用者以及VB使用者,對SPRING MVC 深惡痛覺,那麼落後,那麼原始,那麼重複,那麼多配置。說白了MVC 跟WINDOWS 下的VISUAL C++ 一樣。
今天使用 NETBEAN 8.0 +JDK 8+TOMCAT8.0+MAVN+WICKET外掛
使用NETBEAN MANV+WICKET外掛方式 很容易搞好了,並可以正常執行。如果用maven方式下載WICKET 6來程式設計的話,無法跑出現以下問題
Unexpected RuntimeException
Last cause: Can not determine Markup. Component is not yet connected to a parent. [Page class = com.shark.wicket.java.Controll.HomePage, id = 0, render count = 1]
Stacktrace
Root cause:
org.apache.wicket.markup.MarkupNotFoundException: Can not determine Markup. Component is not yet connected to a parent. [Page class = com.shark.wicket.java.Controll.HomePage, id = 0, render count = 1]
at org.apache.wicket.Component.getMarkup(Component.java:750)
at org.apache.wicket.Component.internalRender(Component.java:2332)
at org.apache.wicket.Component.render(Component.java:2295)
at org.apache.wicket.Page.renderPage(Page.java:1024)
at org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:139)
at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:284)
at org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:175)
百度了相關的問題比較少,反覆檢查了 WEB.XML APPLIACATION.JAVA;HOMEPAGE.JAVA。
照文件抄的沒啥問題啊。
從一篇英文BBS獲得靈感,它說是HOMEPAGE.JAVA無法找到 WICKET :ID。 然後仔細對照了下 HTML的ID 和JAVA裡返回的ID 確實一直的。
然後想到再跑下WICKET外掛專案,居然還是好好的,是否兩者可以對照下呢! 隨機對照下,發現目標結構不一樣。
WICKET外掛,HTML 放在 SRC/MAIN/RESOURCES下同名包!
我以為它們跟JAVA是同一個目錄下的,同在一個包中而已,只是顯示方式不一樣啦!在仔細對照下,JAVA原始碼在SRC/MAIN/JAVA/同名包目錄。
好吧 我先把HTML 放在資源包路徑吧! 結果就沒異常了,正常執行好了。