<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Wicket tips

    今天對wicket小研究了一下,同struts比較,的確有其過人之處,它更具有強烈C/S結構的UI色彩,可以將
    前臺的美工&后臺的程序員分工明確,關于更多的比較以及特點,可以參考<Wicket開發指南>,作者已經講的很詳細了。

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

    一、代碼結構
    例子很簡單,就是按照<Wicket開發指南>以及wicket中的demo實現的例子:經典的HelloWorld(在web page輸出)
    例子在Eclipse中的目錄結構如下
    ├─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>

    三、運行localhost/mywick/helloworld/
      運行后出現如下錯誤:
    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)



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

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





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

    評論

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

    其實Html是可以放在其它位置點
    晚一點我會寫一些關于這方面的內容  回復  更多評論   

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

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

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

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

    公告


    導航

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

    統計

    常用鏈接

    留言簿(13)

    我參與的團隊

    隨筆分類(69)

    隨筆檔案(68)

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品国产电影| 亚洲国产成人手机在线电影bd| 亚洲精品无码成人AAA片| 久久精品国产亚洲av麻豆蜜芽| 毛片在线播放免费观看| 亚洲av无码不卡| 最近中文字幕完整免费视频ww | 亚洲JIZZJIZZ中国少妇中文| 亚洲第一成年男人的天堂| 午夜免费啪视频在线观看 | 亚洲人成在线中文字幕| 免费AA片少妇人AA片直播| 国产成人亚洲综合一区| 美女视频黄的免费视频网页| 亚洲AV日韩精品久久久久久久| 日韩av无码久久精品免费| 亚洲人成毛片线播放| 夭天干天天做天天免费看| 处破女第一次亚洲18分钟| 国产亚洲自拍一区| 色欲色香天天天综合网站免费| 亚洲乱码中文字幕小综合| 最好免费观看韩国+日本| 最新亚洲成av人免费看| 人人揉揉香蕉大免费不卡| 精品亚洲一区二区三区在线观看| 两性色午夜视频免费播放| 亚洲国产日韩在线观频| AAA日本高清在线播放免费观看| 国产国拍亚洲精品福利| 怡红院亚洲红怡院在线观看| 久久精品亚洲乱码伦伦中文| 特级精品毛片免费观看| 亚洲国产一区二区三区在线观看| 亚洲愉拍99热成人精品热久久| 一级做a免费视频观看网站| 亚洲精品国产精品乱码不卞| 无码免费一区二区三区免费播放 | 中文字幕无码不卡免费视频| 美女视频黄频a免费| 久久丫精品国产亚洲av不卡|