Wicket tips

          今天對wicket小研究了一下,同struts比較,的確有其過人之處,它更具有強(qiáng)烈C/S結(jié)構(gòu)的UI色彩,可以將
          前臺的美工&后臺的程序員分工明確,關(guān)于更多的比較以及特點(diǎn),可以參考<Wicket開發(fā)指南>,作者已經(jīng)講的很詳細(xì)了。

          這里就今天我實(shí)踐過程中遇到的問題備忘一下.

          一、代碼結(jié)構(gòu)
          例子很簡單,就是按照<Wicket開發(fā)指南>以及wicket中的demo實(shí)現(xiàn)的例子:經(jīng)典的HelloWorld(在web page輸出)
          例子在Eclipse中的目錄結(jié)構(gòu)如下
          ├─src
          │  └─wicket
          │      └─examples
          │          └─helloworld
          └─web
              ├─META-INF
              └─WEB-INF
                  ├─classes
                  │  └─wicket
                  │      └─examples
                  │          └─helloworld
                  └─lib

          在helloworld包中定義了3個文件
          1) HelloWorld.java
          2) HelloWorldApplication.java
          3) helloWorld.html(注意這里小寫的h)

          二、web配置
          web.xml主要配置如下
          <servlet>
                  
          <servlet-name>HelloWorldApplication</servlet-name>
                  
          <servlet-class>wicket.protocol.http.WicketServlet</servlet-class>
                  
          <init-param>
                    
          <param-name>applicationClassName</param-name>
                    
          <param-value>wicket.examples.helloworld.HelloWorldApplication</param-value>
                  
          </init-param>
                  
          <load-on-startup>1</load-on-startup>
              
          </servlet>


              
          <servlet-mapping>
                  
          <servlet-name>HelloWorldApplication</servlet-name>
                  
          <url-pattern>/helloworld/*</url-pattern>
              </servlet-mapping>

          三、運(yùn)行l(wèi)ocalhost/mywick/helloworld/
            運(yùn)行后出現(xiàn)如下錯誤:
          WicketMessage: Markup of type 'html' for component 'wicket.examples.helloworld.HelloWorld' not found. Enable debug messages for wicket.util.resource to get a list of all filenames tried:
          [Page 
          class = wicket.examples.helloworld.HelloWorld, id = 0]

          Root cause:

          wicket.markup.MarkupNotFoundException: Markup not found. Component 
          class: wicket.examples.helloworld.HelloWorld Enable debug messages for wicket.util.resource to get a list of all filenames tried
          at wicket.markup.MarkupCache.getMarkupStream(MarkupCache.java:
          117)
          at wicket.MarkupContainer.getAssociatedMarkupStream(MarkupContainer.java:
          827)
          at wicket.Page.onRender(Page.java:
          850)
          at wicket.Component.render(Component.java:
          1526)
          at wicket.Page.renderPage(Page.java:
          408)
          at wicket.request.target.component.BookmarkablePageRequestTarget.respond(BookmarkablePageRequestTarget.java:
          226)
          at wicket.request.compound.DefaultResponseStrategy.respond(DefaultResponseStrategy.java:
          49)
          at wicket.request.compound.AbstractCompoundRequestCycleProcessor.respond(AbstractCompoundRequestCycleProcessor.java:
          66)
          at wicket.RequestCycle.doProcessEventsAndRespond(RequestCycle.java:
          902)
          at wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:
          929)
          at wicket.RequestCycle.step(RequestCycle.java:
          1010)
          at wicket.RequestCycle.steps(RequestCycle.java:
          1084)
          at wicket.RequestCycle.request(RequestCycle.java:
          454)
          at wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:
          219)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:
          690)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:
          803)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
          269)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
          188)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
          210)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
          174)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
          127)
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
          117)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
          108)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
          151)
          at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
          870)
          at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:
          665)
          at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:
          528)
          at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:
          81)
          at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:
          685)



          四、總結(jié)
          大部分文章提到該錯誤主要是class和對應(yīng)的html沒有放在同一目錄,所以我疑惑了半天,我一直是放在同目錄下的
          這里給大家也提醒一下,不僅要在同目錄,而且命名也是大小寫敏感的:
          1.java類和html文件一定要放在一個包里(同文件夾下)
          2.繼承WebPage的類如HelloWorld,則其應(yīng)對應(yīng)html應(yīng)該命名為HelloWorld.html(這個問題很難找)

          五、問題
            因?yàn)檫€沒有深入了解,就目前的理解程度,有些疑問.
           
          1.繼承webPage的類命名必須要和html一致,是不是會導(dǎo)致同包目錄下文件太多,瀏覽起來很不方便,沒有將其分開的辦法?
          2.所有的html都要放在WEB-INF/classes下,感覺不太符合web工程啊規(guī)則啊.其實(shí)本質(zhì)還是能否將這兩個分開的問題 :)
           





          posted on 2007-08-15 11:36 想飛就飛 閱讀(1693) 評論(3)  編輯  收藏 所屬分類: J2EE

          評論

          # re: Wicket tips[未登錄] 2007-08-15 12:38 豬兒笨笨

          其實(shí)Html是可以放在其它位置點(diǎn)
          晚一點(diǎn)我會寫一些關(guān)于這方面的內(nèi)容  回復(fù)  更多評論   

          # re: Wicket tips 2007-08-15 13:10 想飛就飛

          好的,期待ing
          :)
            回復(fù)  更多評論   

          # re: Wicket tips 2007-08-15 16:57 編程、設(shè)計是職業(yè)更是愛好

          我不喜歡Struts的設(shè)計模式,尤其是濫用的Tag。期待后續(xù)精彩的解答。  回復(fù)  更多評論   

          公告


          導(dǎo)航

          <2007年8月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          統(tǒng)計

          常用鏈接

          留言簿(13)

          我參與的團(tuán)隊

          隨筆分類(69)

          隨筆檔案(68)

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 会昌县| 南丹县| 万宁市| 江源县| 革吉县| 山丹县| 布尔津县| 恭城| 迭部县| 广元市| 枣阳市| 南康市| 赤峰市| 福海县| 十堰市| 铁岭市| 西安市| 罗田县| 临漳县| 墨玉县| 望江县| 蓝田县| 高阳县| 邹平县| 鄯善县| 顺平县| 三门县| 安丘市| 博罗县| 思茅市| 阜康市| 扎鲁特旗| 泉州市| 怀宁县| 平邑县| 崇仁县| 本溪市| 澜沧| 咸宁市| 辽源市| 天祝|