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

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

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

    隨筆-34  評論-1965  文章-0  trackbacks-0

    Struts作為MVC 2的Web框架,自推出以來不斷受到開發者的追捧,得到用廣泛的應用。作為最成功的Web框架,Struts自然擁有眾多的優點:

    • MVC 2模型的使用
    • 功能齊全的標志庫(Tag Library)
    • 開放源代碼

    但是,所謂“金無赤金,人無完人”,Struts自身也有不少的缺點:

    • 需要編寫的代碼過多,容易引起“類爆炸”
    • 單元測試困難

    這些缺點隨著Web的發展越來越明顯。這就促生了Struts 2.0,它的誕生能很好的解決上述問題。 好啦,廢話就不多說了,現在就讓我們感受一下的Struts 2.0的魅力吧。

    1. 搭建開發和運行環境
      1. 到Apache下載Struts 2.0包

      2. 打開Eclipse 3.2新建Web工程

        點擊菜單File\New\Project,出現如圖1所示對話框
        圖1 新建工程對話框
        圖1 新建工程對話框
        選擇Web\Dynamic Web Project,點擊“Next”,出現圖2對話框

        圖2 新建動態Web工程對話框
        圖2 新建動態Web工程對話框
        在“Project Name”中鍵入Struts2_HelloWorld,點擊“New”,出現以下對話框

        圖3 新建服務器運行時對話框
        圖3 新建服務器運行時對話框
        選擇“Apache\Apache Tomat v5.5”,點擊“Next”,出現以下對話框

        圖4新建服務器運行時對話框
        圖4新建服務器運行時對話框
        點擊“Finish”,關閉對話框。

      3. 將Struts 2.0 lib下的jar文件加到工程的構建路徑(build path)

        圖5 Struts 2.0的lib目錄
        圖5 Struts 2.0的lib目錄
        按ctr+a全選,復制,再轉到Eclipse窗口,在“Project Explorer”子窗口中選中Struts2_HelloWorld\WebContent\WEB-INF\lib,然后粘貼。經過Eclipse自動刷新“Project Explorer”子窗口,剛才所粘貼的jar文件應該會出現在Struts2_HelloWorld\Java Resources: src\Libraries\Web App Libraries下,如圖6所示:

        圖6 Project Explorer子窗口
        圖6 Project Explorer子窗口

      4. 打開web.xml文件,將其修改為以下代碼:
        <?xml?version="1.0"?encoding="ISO-8859-1"?>
        <!DOCTYPE?web-app?PUBLIC?"-//Sun?Microsystems,?Inc.//DTD?Web?Application?2.3//EN"?"http://java.sun.com/dtd/web-app_2_3.dtd">
        <web-app>
        ????
        <display-name>Struts?2.0?Hello?World</display-name>
        ????
        <filter>
        ????????
        <filter-name>struts2</filter-name>????????<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
        ????
        </filter>
        ????
        <filter-mapping>
        ????????
        <filter-name>struts2</filter-name>
        ????????
        <url-pattern>/*</url-pattern>
        ????
        </filter-mapping>
        ????
        <welcome-file-list>
        ????????
        <welcome-file>index.html</welcome-file>
        ????
        </welcome-file-list>
        </web-app>

      5. 新建struts.xml文件

        右鍵點擊,Struts2_HelloWorld\Java Resources: src,出現如圖7所示菜單
        圖7 新建Other菜單
        圖7 新建Other菜單
        點擊“Other”,出現新建對話框,如圖8所示

        圖8 新建對話框
        圖8 新建對話框
        點擊“Next”,出現新建文件對話框,如圖9所示

        圖9 新建文件對話框
        圖9 新建文件對話框
        在“File name”中鍵入sturts.xml,點擊“Finish”,然后將struts.xml的內容修改為:

        <!DOCTYPE?struts?PUBLIC
        ????????"-//Apache?Software?Foundation//DTD?Struts?Configuration?2.0//EN"
        ????????"http://struts.apache.org/dtds/struts-2.0.dtd"
        >
        <struts>
        ????
        <include?file="struts-default.xml"/>
        </struts>

      6. 新建index.html文件

        右鍵點擊Struts2_HelloWorld\WebContent,出現如圖10所示的菜單
        圖10 新建Other菜單
        圖10 新建Other菜單
        點擊“Other”,出現新建對話框,如圖11所示

        圖11 新建對話框
        圖11 新建對話框
        選擇Web\HTML,點擊“Next”出現如圖12所示的對話框

        圖12 新建HTML頁面對話框
        圖12 新建HTML頁面對話框
        在“File Name”中鍵入index.html,點擊“Next”,出現如圖13所示的對話框

        圖13 模板選擇對話框
        圖13 模板選擇對話框
        點擊“Finish”,將index.html的內容修改為以下內容:

        <!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">
        <html>
        <head>
        <meta?http-equiv="Content-Type"?content="text/html;?charset=UTF-8">
        <title>Hello?World</title>
        </head>
        <body>
        <h3>Hello?World!</h3>
        </body>
        </html>

      7. 將應用程序打包到tomcat上

        右鍵點擊Struts_HelloWorld,出現如圖14所示的菜單
        圖14 工程菜單
        圖14 工程菜單
        點擊“Export\WAR file”,出現如圖15所示的對話框

        圖15 輸出對話框
        圖15 輸出對話框
        選擇“Web\WAR file”,點擊“Next”,出現如圖16所示的對話框

        圖16 輸出路徑對話框
        圖16 輸出路徑對話框
        輸入war文件的路徑(如%tomcat%\webapps\Struts2_HelloWorld.war),點擊“Finish”關閉對話框。

      8. 啟動tomcat,運行應用程序

        打開你的Internet Explorer,鍵入http://localhost:8080/Struts2_HelloWorld/,窗口輸出如圖17所示
        圖17 Hello World窗口
        圖17 Hello World窗口

    2. 第一個Struts 2.0應用程序——Hello World
      1. 新建類包(package)

        右鍵點擊Struts2_HelloWorld\Java Resources: src,出現如圖18所示菜單
        圖18 新建菜單
        圖18 新建菜單"
        點擊“New\Package”,出現如圖19所示對話框

        圖19新建Java類包對話框
        圖19新建Java類包對話框
        在“Name”鍵入tutorial,點擊“Finish”關閉對話框。

      2. 新建HelloWorld.java文件

        右鍵點擊Struts2_HelloWorld\Java Resources: src\tutorial,出現如圖20所示菜單
        圖20 新建菜單
        圖20 新建菜單
        點擊“New\Class”,出現如圖21所示對話框

        圖21 新建Java類對話框
        圖21 新建Java類對話框
        在“Name”中鍵入HelloWorld,在“Superclass”中鍵入com.opensymphony.xwork2.ActionSupport,點擊“Finish”關閉對話框。將HelloWorld.java的內容修改為:

        package?tutorial;

        import?com.opensymphony.xwork2.ActionSupport;

        public?class?HelloWorld?extends?ActionSupport?{
        ????
        private?String?name;
        ????
        ????
        public?String?getName()?{
        ????????
        return?name;
        ????}

        ????
        ????
        public?void?setName(String?name)?{
        ????????
        this.name?=?name;
        ????}

        ????
        ????
        public?String?execute()?{
        ????????name?
        =?"Hello,?"?+?name?+?"!";?
        ????????
        return?SUCCESS;
        ????}

        }

      3. 在struts.xml中添加action映射(mapping)
        <!DOCTYPE?struts?PUBLIC
        ????????"-//Apache?Software?Foundation//DTD?Struts?Configuration?2.0//EN"
        ????????"http://struts.apache.org/dtds/struts-2.0.dtd"
        >
        <struts>
        ????
        <include?file="struts-default.xml"/>
        ????
        <package?name="tutorial"?extends="struts-default">
        ????????
        <action?name="HelloWorld"?class="tutorial.HelloWorld">
        ????????????
        <result>HelloWorld.jsp</result>
        ????????
        </action>
        ????
        </package>
        </struts>

      4. 新建SayHello.jsp

        參考“新建index.html文件”步驟,彈出如圖22所示對話框
        圖22 新建對話框
        圖22 新建對話框
        點擊“Next”, 進入下一步,如圖23所示

        圖23 新建JSP對話框
        圖23 新建JSP對話框
        在“File name”鍵入SayHello.jsp,點擊“Next”進入下一步,如圖24所示

        圖24 模板選擇對話框
        圖24 模板選擇對話框
        點擊“Finish”關閉對話框,并將SayHello.jsp的內容修改為:

        <%@?page?contentType="text/html;?charset=UTF-8"?%>
        <%@?taglib?prefix="s"?uri="/struts-tags"?%>
        <!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">
        <html>
        ????
        <head>
        ????????
        <title>Say?Hello</title>
        ????
        </head>
        ????
        <body>
        ????????
        <h3>Say?"Hello"?to:?</h3>
        ????????
        <s:form?action="HelloWorld">
        ????????????Name:?
        <s:textfield?name="name"?/>
        ????????????
        <s:submit?/>
        ????????
        </s:form>
        ????
        </body>
        </html>

      5. 新建HelloWorld.jsp(請參考上一步),HelloWorld.jsp的內容為:
        <%@?page?contentType="text/html;?charset=UTF-8"?%>
        <%@?taglib?prefix="s"?uri="/struts-tags"?%>
        <!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">
        <html>
        ????
        <head>
        ????????
        <title>Hello</title>
        ????
        </head>
        ????
        <body>
        ????????
        <h3><s:property?value="name"?/></h3>
        ????
        </body>
        </html>

      6. 重新打包發布應用程序

        先停止tomcat, 再將tomcat里webapps下的Struts2_HelloWorld.war和Struts2_HelloWorld文件夾刪除,參照“將應用程序打包到tomcat上”重新發布應用程序。

      7. 啟動tomcat,運行測試

        打開Internet Explorer,鍵入http://localhost:8080/Struts2_HelloWorld/SayHello.jsp,窗口輸出如圖25所示
        圖25 SayHello.jsp
        圖25 SayHello.jsp
        在“Name”鍵入字符串(如World),點擊Submit,轉到HelloWorld.jsp頁面,如圖26所示

        圖26 HelloWorld.jsp
        圖26 HelloWorld.jsp

    3. 單元測試Hello World

      在文章開始的時候提及,單元測試困難是Struts一大缺點。現在讓我們在體驗一下,在Struts 2.0中是如何進行測試的。

      1. 新建JUnit單元測試

        右鍵點擊Struts2_HelloWorld\Java Resources: src\tutorial,彈出如圖27所示對話框
        圖27 新建菜單
        圖27 新建菜單
        點擊“Next\Other”

        圖28 新建對話框
        圖28 新建對話框
        選擇“Java\JUnit\JUnit Test Case”,點擊“Next”

        圖29 新建JUnit 測試用例對話框
        圖29 新建JUnit 測試用例對話框
        選擇“New JUnit 4 test”,在“Name”中鍵入HelloWorldTest,在“Class under test”鍵入tutorial.HelloWorld,點擊“Next”

        圖30 選擇方法對話框
        圖30 選擇方法對話框
        選中HelloWorld\execute方法,點擊Finish。如果生成的HelloWorldTest.java文件的圖標(Icon)出現紅色交叉標志,請進行以下步驟添加JUnit 4的jar包。

        右鍵點擊Struts2_HelloWorld,出現如圖所示菜單。 圖31 新建菜單
        圖31 新建菜單
        點擊“Build Path\Add Libararis”,彈出圖32對話框

        圖32 添加庫對話框
        圖32 添加庫對話框
        選中“JUnit”,點擊“Next”

        圖33 選擇版本對話框
        圖33 選擇版本對話框
        選擇“JUnit 4”,點擊“Finish”關閉對話框,并將HelloWorldTest.java的內容修改為:

        package?tutorial;

        import?static?org.junit.Assert.assertTrue;

        import?org.junit.Test;

        import?com.opensymphony.xwork2.ActionSupport;

        public?class?HelloWorldTest?{

        ????@Test
        ????
        public?void?testExecute()?{
        ????????HelloWorld?hello?
        =?new?HelloWorld();
        ????????hello.setName(
        "World");
        ????????String?result?
        =?hello.execute();
        ????????
        ????????assertTrue(
        "Expected?a?success?result!",?ActionSupport.SUCCESS.equals(result));
        ????????
        ????????
        final?String?msg?=?"Hello,?World!";
        ????????assertTrue(
        "Expected?the?default?message!",?msg.equals(hello.getName()));
        ????}


        }

      2. 運行單元測試

        右鍵點擊Struts2_HelloWorld\Java Resources: src\tutorial\HelloWorldTest.java,彈出如圖34所示菜單
        圖34 運行為菜單
        圖34 運行為菜單
        點擊“Run As\JUnit Test”,出現JUnit子窗口如圖35所示

        圖35 JUnit子窗口
        圖35 JUnit子窗口
        圖35的綠色矩形表示,所有單元測試通過。

    4. 總結

      上面的例子簡單地演示了,Web 應用程序的基本操作,也即是,頁面輸入->Action處理->再輸出到另外頁面。Struts 2.0的簡單易用、方便測試相信也會給大家留下不錯的印象吧。我相信,Struts 2.0作為一個全新的Web架構,將會再次掀起Web開發的熱潮。 不過,Struts 2.0還在測試中,正式版的發布還需些時日,所以文檔方面可能有所欠缺。請大家繼續留意我的博客,我會盡我所能為大家寫更多關于Struts 2.0的文章。

    posted on 2006-10-10 18:35 Max 閱讀(126056) 評論(345)  編輯  收藏 所屬分類: Struts 2.0系列
    評論共4頁: 上一頁 1 2 3 4 下一頁 

    評論:
    # re: 為Struts 2.0做好準備 2007-07-20 16:44 | jarwang
    還一點,是這樣的.前二次按submit中文絕對亂碼.但有時連續提交三次后,就正常了..非常奇怪...  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-07-24 00:03 | Max
    # re: 為Struts 2.0做好準備[未登錄] 2007-07-25 09:48 | Yong
    是不是必須在Tomcat 5.5 上進行運行  回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2007-07-25 09:51 | Yong
    嚴重:Error filterStart

    嚴重:Content[/Struts2_HelloWorld]startup failed due to previous errors

    tomcat 5.0 或5.5下都出現這個問題

    希望能給點解決意見   回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2007-07-25 10:10 | Yong
    嚴重: Exception starting filter struts2
    java.lang.NoClassDefFoundError: com/opensymphony/util/ClassLoaderUtil
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:241)
    at org.apache.struts2.dispatcher.Dispatcher.<init>(Dispatcher.java:127)
    at org.apache.struts2.dispatcher.FilterDispatcher.createDispatcher(FilterDispatcher.java:379)
    at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:160)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:221)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:302)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:78)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3635)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4222)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:448)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
    2007-7-25 10:03:27 org.apache.catalina.core.StandardContext start
    嚴重: Error filterStart
    2007-7-25 10:03:27 org.apache.catalina.core.StandardContext start
    嚴重: Context [/Struts2_HelloWorld1] startup failed due to previous errors

    又試了一次后出現的,Tomcat 為5.5的  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-07-25 23:42 | Max
    @Yong
    少了一些包:xwork-2.0.3.jar,請檢查你的Build Path。  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-08-01 17:15 | 地帶
    寫的簡單明了,不過剛開始看有點吃力,你寫的只是他的創建過程,具體的流程原理何不也來個簡單的介紹呢?
    支持你!  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-08-02 18:55 | 陳利
    您好,我照著示例做了,別的一切正常,就是打好war包后,啟動tomcat服務器的時候,有警告信息:Could not parse struts.local setting,我上網上搜索了一下,也找不到解決的辦法。您能看一下嗎?  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-08-04 01:33 | jueqinguzhu
    請問 我按照上面的做了
    卻是這:
    java.lang.NoClassDefFoundError: com/opensymphony/util/ClassLoaderUtil
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:241)
    at org.apache.struts2.dispatcher.Dispatcher.<init>(Dispatcher.java:127)
    at org.apache.struts2.dispatcher.FilterDispatcher.createDispatcher(FilterDispatcher.java:379)
    at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:160)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3693)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4340)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1206)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:293)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1337)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
    at java.lang.Thread.run(Thread.java:619)
    2007-8-4 1:27:03 org.apache.catalina.core.StandardContext start
    嚴重: Error filterStart
    2007-8-4 1:27:03 org.apache.catalina.core.StandardContext start
    嚴重: Context [/struts2] startup failed due to previous errors
    這是什么原因啊  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-08-04 01:41 | jueqinguzhu
    我把2.0.0下的包全部導進去才沒有錯誤
    為什么和你們說的不一樣呢
      回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-08-08 10:50 | 愛好者
    我才開始學習STRUTS2,測試了以上的案例有一些基礎的體會!謝謝!不知道有沒有更多的相關的中文資料可以提供哦!或提供網址下載!
    我也會在這里一節一節的學習下去,學習更多的知識,謝謝了哈!!  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-08-09 14:01 | 5006benben
    @maomao
    你的版本有問題~~!!
    你用的是tomcat5.0的話,struts.xml和web.xml里的文件格式是一致的,要是不一致就會出錯!!
    我就犯了那個錯誤,弄了半天!
    你下一個tomcat5.5改一下就行了!  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-08-09 17:12 | bbo
    jar引用多了  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-08-10 00:19 | 初學
    /testresin3/HelloWorld was not found on this server.   回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-08-13 10:27 | 風雲の軌跡
    在頁面的<head>標簽中加入<s:head /> 就可以了
    ...
    <head>
    <title>Struts 2 Cool Tags - Others</title>
    <s:head />
        ...
    </head>
    ...
    具體我也不是很了解,我也是在網上搜到的這個解決方法,但是很有用,在這個Bolg上也有相關的文章:
    http://www.tkk7.com/max/archive/2007/06/12/123682.html
    這個Bolg寫的非常好,我覺得里面有許多我初學時所遇到疑惑的解決方法!  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-08-13 14:57 | totti
    我也是復制 struts.xml文件名稱有錯誤。。。
    找了半天原因,復制惹的禍呀。。。  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-08-16 13:41 |
    寫的很實用 支持 繼續關注!!  回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2007-08-17 09:34 | cc
    第一次看 對著配置 我啟動后說找不到struts.properties
    我后來自己加上去 就好了
    還有就是我下載的struts2.0.6里面的包和2.0.0不一樣呀
    沒辦法下載的2.0.0才配置的
    東西好,謝謝
    qq:281663415  回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2007-08-17 11:03 | cc
    HelloWord.jsp
    打印數據加一段,改成:
    <h3><s:property value="name" /></h3>
    <%
    out.print( request.getAttribute("name") );
    %>
    會發現第一次提交SayyHellow.jsp
    打印出來是的:Hello, 32!
    null,
    然后不關閉瀏覽器后退,在執行提交表單
    打印出來的就是:Hello, 32!
    Hello, 32!
    而且 就只有第一次是這樣,后面就不會是null了  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-08-18 18:20 | Elven
    Max,你好!
    我剛開始學習使用Struts2.0,很多地方不明白,還望賜教!
    我一步一步按照你的方法去做的(除了Struts用的是2.0.9版本),但是我在做一個簡單的還沒有用到Struts2.0的HelloWorld的web應用時,我的tomcat就提示我HTTP Status 404 -錯誤,請問這是怎么回事?  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-08-20 14:16 | Elven
    max,你好!
    我按照你的方法那樣做了,但是怎么要提示HTTP Status 404找不到源的錯誤。
    不管是打包到Tomcat下,還是用tomcat虛擬目錄建立web應用,都會提示這樣的錯誤。
    你能幫我想一想,究竟在哪一步出錯了嗎?
    我真的太想把Struts2學會了,你能幫幫我嗎?
    萬分感謝!!!  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-08-22 15:09 |
    hao好人哪  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-08-22 15:23 | mybygao
    Tomcat要5.5版的。
    apache網站上有例子。  回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2007-08-22 17:37 | Mike
    檢查了一下,沒有復制錯誤,也沒有代碼錯誤。但是調用helloworld時報404
    description The requested resource (/Struts2/HelloWorld) is not available.

    struts.xml:
    <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
    <struts>
    <include file="struts-default.xml"/>
    <package name="tutorial" extends="struts-default">
    <action name="HelloWorld" class="tutorial.HelloWorld">
    <result>HelloWorld.jsp</result>
    </action>
    </package>
    </struts>
    web.xml:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
    <display-name>Struts 2.0 Hello World</display-name>
    <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    </web-app>  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-08-22 18:01 | Elven
    max這段時間去哪了?
    怎么都不理我們這些Struts2.0的初學者了?  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-08-22 22:46 | Max
    @Elven
    @Mike
    對不起,這段時間比較忙,所以沒有來得及回來大家的評論。
    因為寫這篇文章的時候,我的寫作經驗還比較淺,所以有些地方不太明白。過兩天有時間,我會重新寫這篇文章的。
    請大家稍等。  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-08-22 22:52 | Elven
    謝謝你,max!期待你寫出更有水平,更全面的文章!  回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2007-08-23 11:18 | Mike
    問題原因找到了,因為sayhello.jsp的<s:form action="HelloWorld">我加了一個“/”<s:form action="/HelloWorld">,所以容器說找不到,爺爺的,但是我還是想知道為什么它找不到,max能解釋一下么,謝謝  回復  更多評論
      
    #  為Struts 2.0做好準備 2007-08-24 21:46 | yuxiang
    請問我
    圖25 SayHello.jsp
    當我提交時,報以下錯誤

    type Status report

    message /TestStruts2/HelloWorld

    description The requested resource (/TestStruts2/HelloWorld) is not available.

    按理來說.他報的錯誤在我們一般的情況下是正確的
    但是我們用的struts 里面有配置action=HelloWorld
    就跳轉到/HelloWorld.jsp頁面的啊???
    還請幫忙!
    有問題得不到解決真是很煩.
      回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2007-08-25 11:03 | fish
    添加Junit的classlibrary時,選擇Junit4時,顯示JUnit 4 requires a Java 5 project
    什么問題呀  回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2007-08-31 10:45 | jean
    求助小弟我遇到一個問題困擾好久
    發生再重複deploy因為struts2-core-2.0.9.jar(再使用中無法刪除)
    我用Tomcat5 跟 sun Applicion server8.2都一樣
    該如何是好請幫幫忙謝謝???

      回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-09-04 17:15 | cg
    少一個包:oscore-2.2.4.jar  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-09-04 22:17 | idodolook2007
    警告: Could not find or error in struts.properties
    java.lang.IllegalStateException: struts.properties missing
    at org.apache.struts2.config.PropertiesSettings.<init>(PropertiesSettings.java:49)
    at org.apache.struts2.config.DefaultSettings.<init>(DefaultSettings.java:52)
    at org.apache.struts2.config.Settings.getDefaultInstance(Settings.java:202)
    at org.apache.struts2.config.Settings.getInstance(Settings.java:76)
    at org.apache.struts2.config.Settings.get(Settings.java:134)
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:179)
    at org.apache.struts2.dispatcher.Dispatcher.<init>(Dispatcher.java:143)
    at org.apache.struts2.dispatcher.FilterDispatcher.createDispatcher(FilterDispatcher.java:397)
    at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:163)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:223)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:304)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:77)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3600)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4193)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:809)
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:698)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:472)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
    at org.apache.catalina.core.StandardService.start(StandardService.java:450)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
    你好,我已經在src下添加了struts.properties文件,卻還是報錯,因此想問問是什么原因引起的?謝謝  回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2007-09-05 16:18 | jean
    @cg

    你是說我要把oscore-2.2.4.jar放到lib裡嗎??
    我有放進去了可是重新deploy
    struts2-core-2.0.9.jar還是被lock
    oscore-2.2.4.jar的作用為何可否說明一下
    謝謝  回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2007-09-05 17:51 | 無為
    為什么web.xml里<?xml version="1.0" encoding="ISO-8859-1"?>的字符集是"ISO-8859-1"而其它文件里用的是"UTF-8"呀?有什么區別呀.還有為什么在JSP頁面里用"ISO-8859-1"就不能保存,用"UTF-8"就可以呀?  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-09-10 10:45 | calm feeling
    2.09
    錯誤404,悶啊!!大哥救命啊!  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-09-10 15:14 | calm feeling
    問題解決,哈哈  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-09-11 16:39 | 小牛
    @就
    org.apache.jasper.JasperException
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:234)


    root cause

    java.lang.NullPointerException
    org.apache.struts2.components.UIBean.evaluateParams(UIBean.java:701)
    org.apache.struts2.components.UIBean.end(UIBean.java:448)
    org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:35)
    org.apache.jsp.SayHello_jsp._jspx_meth_s_textfield_0(SayHello_jsp.java:138)
    org.apache.jsp.SayHello_jsp._jspx_meth_s_form_0(SayHello_jsp.java:107)
    org.apache.jsp.SayHello_jsp._jspService(SayHello_jsp.java:71)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:234)


    note The full stack trace of the root cause is available in the Apache Tomcat/5.0.27 logs.

    在輸入SayHello.jsp頁面時出現這個錯誤!
      回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-09-12 20:49 | Elven
    @calm feeling
    你的404錯誤是怎么解決的啊?
    我的也一直提示404錯誤。
    我懷疑是web.xml出了問題,但是又不知道怎么改?
    求助解決辦法。  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-09-13 09:42 | ttl_web (ttl_web@yahoo.com.cn)
    謝謝!

    通過您的這篇文章,使我對struts2 doc中“http://struts.apache.org/2.x/docs/hello-world.html”有了實際的認識

    再次感謝!!  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-09-13 23:14 | xun
    請問下面的問題怎么解決??

    嚴重: Exception starting filter struts2
    Error loading configuration file struts-default.xml - Class: com.opensymphony.xwork2.config.providers.XmlConfigurationProvider
    File: XmlConfigurationProvider.java
    Method: loadConfigurationFiles
    Line: 850 - com/opensymphony/xwork2/config/providers/XmlConfigurationProvider.java:850:-1
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:135)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:100)
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:130)
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52)
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:395)
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:452)
    at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:201)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3693)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:761)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:741)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1023)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1015)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:448)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:582)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
    Caused by: java.lang.NullPointerException
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:850)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:131)
    ... 33 more
    2007-9-13 23:06:10 org.apache.catalina.core.StandardContext start
    嚴重: Error filterStart
    2007-9-13 23:06:10 org.apache.catalina.core.StandardContext start
    嚴重: Context [/Struts2_HelloWorld] startup failed due to previous errors
    2007-9-13 23:06:11 org.apache.coyote.http11.Http11Protocol start  回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2007-09-16 09:21 | Jimmy
    請問是不是要tomcat5.5以上的啊?

    我的tomcat5.0.16+jdk1.42+struts2.10老是報錯

    Status report

    message /Struts2_HelloWorld/

    description The requested resource (/Struts2_HelloWorld/) is not available.

      回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-09-18 15:29 | @ctan
    郁悶,我的報這個錯 \
    myeclipse5.0 tomcat5.0 jdk1.4.2

    信息: validateJarFile(C:\java_dev\Tomcat 5.0\webapps\Struts2App\WEB-INF\lib\servlet-api-2.4.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
    2007-9-18 15:19:25 org.apache.catalina.core.StandardContext start
    嚴重: Error filterStart
    2007-9-18 15:19:25 org.apache.catalina.core.StandardContext start
    嚴重: Context startup failed due to previous errors
    2007-9-18 15:19:25 org.apache.catalina.core.StandardHostDeployer install
    信息: Installing web application at context path /tomcat-docs from URL file:C:\java_dev\Tomcat 5.0\webapps\tomcat-docs

    謝謝各位老大。  回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2007-09-20 11:14 | 臺風過境
    嚴重: Exception starting filter struts2
    Unable to load bean: type:com.opensymphony.xwork2.ObjectFactory class:org.apache.struts2.spring.StrutsSpringObjectFactory - bean - jar:file:/F:/JavaProjects/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/webapps/Struts2_HelloWorld/WEB-INF/lib/struts2-spring-plugin-2.0.9.jar!/struts-plugin.xml:8:132
    ……
    Caused by: java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContextAware
    ……
    嚴重: Error filterStart
    2007-9-20 11:01:46 org.apache.catalina.core.StandardContext start
    嚴重: Context [/Struts2_HelloWorld] startup failed due to previous errors
    2007-9-20 11:01:51 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
    信息: Parsing configuration file [struts-default.xml]
    2007-9-20 11:01:53 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
    信息: Parsing configuration file [struts-plugin.xml]
    2007-9-20 11:01:53 org.apache.catalina.core.StandardContext filterStart
    嚴重: Exception starting filter struts2
    按照Max說的方法還是不能解決奧,前面出現這個問題的朋友不知道怎么解決的?  回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2007-09-20 15:32 | 臺風過境
    Unable to load bean: type:com.opensymphony.xwork2.ObjectFactory
    這個tomcat啟動錯誤已經解決,樓主的例子順利通過了,嘿嘿!

    我之前是把struts-2.0.9-lib中的所有jar包都放到WEB-INF/lib中,才出現上面那個錯誤,后來把lib中的包刪除,只保留
    ? struts2-core.jar
    ? xwork.jar
    ? ognl.jar
    ? freemarker.jar
    ? commons-logging.jar
    就順利通過了,看來把所有的包都導入,未必是件可取的事情啊!
      回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2007-09-20 16:31 | 臺風過境
    打好war包后,啟動tomcat服務器的時候,有警告信息:Could not parse struts.local setting,substituting default VM local,不知道怎么回事,我在eclipse下啟動tomcat運行是沒問題的!  回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2007-09-21 13:26 | Jimmy
    javax.servlet.ServletException: Filter execution threw an exception


    root cause

    java.lang.Error: Unresolved compilation problem:
    The public type HelloWorld must be defined in its own file

    tutorial.HelloWorld.<init>(Helloworld.java:5)

      回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-09-26 08:21 | 小燕子
    請問一下老師,我的eclipse3.2中裝了myeclipse5.1.1為什么沒有創建dynamic web project工程的地方呢  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-09-26 14:42 | 小學生
    老師您好:
    我照著這個樣子做了一下,現在已經能運行起來了,但是,就是在eclipse中總是報這個錯:
    The value [HelloWorld] for attribute [action] in tag [form] is not valid.
    報錯的位置是SayHello.jsp中的第9行:<s:form action="HelloWorld">,請問,這是什么原因呢?

    另外,您說的“
    按ctr +a全選,復制,再轉到Eclipse窗口,在“Project Explorer”子窗口中選中Struts2_HelloWorld\WebContent\WEB-INF\lib,然后粘貼。

    的這一句話,我實在不知道如何操作,因為,當我在“Project Explorer”子窗口中選中Struts2_HelloWorld\WebContent\WEB-INF\lib的時候,paste選擇項是灰色的,因此,我只好將這些jar文件直接文件拷貝到了lib目錄下,但是,就是在project explorer中的Struts2_HelloWorld\Java Resources: src\Libraries\Web App Libraries下看不到這些jar文件。盡管如此,卻又不影響打包和運行;)

    我現在確實不知道我在哪里出錯了,希望老師同學指點一下,謝謝!!!

      回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-09-26 15:01 | 小學生
    老師您好:
    現在直接文件拷貝到了lib目錄下的jar文件能在project explorer中的Struts2_HelloWorld\Java Resources: src\Libraries\Web App Libraries下看到了!!!不好意思,剛才耐心不夠~~ :P

    但是,SayHello.jsp中的第9行:<s:form action="HelloWorld">,依然會引起eclipse報:The value [HelloWorld] for attribute [action] in tag [form] is not valid.的錯誤。答案期待中......



      回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-09-27 16:57 | T
    有沒有誰搞好了的,提供給我一個讓我看看,我搞的老是出錯。
    如方便發到郵箱里22211369(at)qq.com  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-10-09 11:16 | 88
    嚴重: Exception starting filter struts2
    Unable to load bean: type:com.opensymphony.xwork2.ObjectFactory class:org.apache.struts2.spring.StrutsSpringObjectFactory - bean - jar:file:/D:/mytools/apache-tomcat-5.5.23/webapps/Struts2_HelloWorld/WEB-INF/lib/struts2-spring-plugin-2.0.9.jar!/struts-plugin.xml:8:132
    嚴重: Error filterStart
    2007-10-9 10:59:28 org.apache.catalina.core.StandardContext start
    嚴重: Context [/Struts2_HelloWorld] startup failed due to previous errors
    2007-10-9 10:59:29 org.apache.coyote.http11.Http11BaseProtocol start
    信息: Starting Coyote HTTP/1.1 on http-8080
    2007-10-9 10:59:29 org.apache.jk.common.ChannelSocket init
    信息: JK: ajp13 listening on /0.0.0.0:8009
    2007-10-9 10:59:30 org.apache.jk.server.JkMain start
    信息: Jk running ID=0 time=0/141 config=null
    2007-10-9 10:59:30 org.apache.catalina.storeconfig.StoreLoader load
    信息: Find registry server-registry.xml at classpath resource
    2007-10-9 10:59:30 org.apache.catalina.startup.Catalina start
    信息: Server startup in 41750 ms  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-10-11 16:25 | 金立軍
    請教一下我在調式這第段代碼:
    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
    <%@ taglib prefix="s" uri="/struts-tags" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Struts 2 Cool Tags - &lt;s:doubeselect/ &gt;</title>
    <s:head />
    </head>
    <body>
    <h2>&lt;s:doubleselect/&gt;</h2>
    <s:form action="Store" >
    <s:set name="foobar"
    value="#{'Java': {'Spring', 'Hibernate', 'Struts 2'}, '.Net': {'Linq', ' ASP.NET 2.0'}, 'Database': {'Oracle', 'SQL Server', 'DB2', 'MySQL'}}" />
    <s:doubleselect list="#foobar.keySet()"
    doubleName="technology"
    doubleList="#foobar[top]"
    label="Technology" />
    </s:form>
    </body>
    </html>



    一運行就出現這下面這個錯誤:


    FreeMarker template error!

    Expression parameters.formName is undefined on line 76, column 43 in template/simple/doubleselect.ftl.
    The problematic instruction:
    ----------
    ==> ${parameters.formName} [on line 76, column 41 in template/simple/doubleselect.ftl]
    in include "/${parameters.templateDir}/simple/doubleselect.ftl" [on line 3, column 1 in template/xhtml/doubleselect.ftl]
    ----------

    Java backtrace for programmers:
    ----------
    freemarker.core.InvalidReferenceException: Expression parameters.formName is undefined on line 76, column 43 in template/simple/doubleselect.ftl.
    at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)
    at freemarker.core.Expression.getStringValue(Expression.java:118)
    at freemarker.core.Expression.getStringValue(Expression.java:93)
    at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
    at freemarker.core.Environment.visit(Environment.java:196)
    at freemarker.core.MixedContent.accept(MixedContent.java:92)
    at freemarker.core.Environment.visit(Environment.java:196)
    at freemarker.core.Environment.include(Environment.java:1375)
    at freemarker.core.Include.accept(Include.java:155)
    at freemarker.core.Environment.visit(Environment.java:196)
    at freemarker.core.MixedContent.accept(MixedContent.java:92)
    at freemarker.core.Environment.visit(Environment.java:196)
    at freemarker.core.Environment.process(Environment.java:176)
    at freemarker.template.Template.process(Template.java:232)
    at org.apache.struts2.components.template.FreemarkerTemplateEngine.renderTemplate(FreemarkerTemplateEngine.java:148)
    at org.apache.struts2.components.UIBean.mergeTemplate(UIBean.java:530)
    at org.apache.struts2.components.UIBean.end(UIBean.java:484)
    at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:43)
    at org.apache.jsp.index_jsp._jspx_meth_s_doubleselect_0(index_jsp.java:185)
    at org.apache.jsp.index_jsp._jspx_meth_s_form_0(index_jsp.java:133)
    at org.apache.jsp.index_jsp._jspService(index_jsp.java:76)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:413)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)
    請問一下各位是什么原因呀
    學生在此謝過了
      回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2007-10-19 15:07 | zero
    java.lang.NoSuchMethodError: javax.xml.transform.dom.DOMResult.getNextSibling()Lorg/w3c/dom/Node;
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getOutputHandler(TransformerImpl.java:390)
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerHandlerImpl.setResult(TransformerHandlerImpl.java:137)
    at com.opensymphony.xwork2.util.DomHelper$DOMBuilder.setup(DomHelper.java:213)
    at com.opensymphony.xwork2.util.DomHelper$DOMBuilder.<init>(DomHelper.java:198)
    at com.opensymphony.xwork2.util.DomHelper$DOMBuilder.<init>(DomHelper.java:189)
    at com.opensymphony.xwork2.util.DomHelper$DOMBuilder.<init>(DomHelper.java:175)
    at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:115)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:830)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:131)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:100)
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:130)
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52)
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:395)
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:452)
    at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:201)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:225)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:308)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:79)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3676)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4327)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
    at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277)
    at org.apache.catalina.core.StandardHost.install(StandardHost.java:832)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:683)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:432)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:964)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
    at org.apache.catalina.core.StandardService.start(StandardService.java:476)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:2298)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:284)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:422)

    我在測試上面的例子的時候,發生了上面的錯誤  回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2007-10-19 15:50 | zero
    是jdk版本的原因,如果使用jdk1.4會報錯但是使用jdk1.6就會報上面的這個錯誤,使用jdk1.5就正常了。  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-10-24 12:44 | 信鴿
    學到了  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-10-31 09:46 | heiyechouke
    nice, thanks very much!  回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2007-10-31 13:55 | 菜鳥
    我的eclipse中為什么不能創建dynamic web project呢?

      回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-11-03 15:32 | 帥哥
    只想說一個字,“日”!  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-11-08 10:34 | 猛男
    謝謝您給我介紹這么漂亮的“妞子”,用起來真爽!  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-11-11 08:40 | skycliff
    樓主幸苦了,期待更多更好的文章。  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-11-16 11:45 | maszxy
    @就
    好象不對呀,中文還是顯示亂碼

    我的QQ:531877631  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-11-16 12:14 | maszxy
    @Mike
    因為你在struts.xml里給這個action定的名字是HelloWorld  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-11-16 12:23 | cricy
    都要發布才能測試嗎?有沒有可以直接測試的?  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-11-16 16:43 | onlykwx
    寫得很好,支持一下!  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-11-23 11:36 | gongbing
    請問,您最后發布應用程序的時候采用的是打包成war文件到tomcat里,但是如果這樣的話,好像每修改一次程序就要把先前的war文件刪除掉,重新打包,這樣做衛冕太麻煩了,請問有沒有其他的簡單一點的辦法?謝謝  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-11-24 17:09 | sandbox
    郁悶,怎么調都調試不通 ,提交表單后就是404錯誤,也不知道什么原因 望賜教

    另外 感覺的文章很好,能否告訴一下出處
    email:flywyvern@126.com 同時希望發一份這篇文章的測試源碼,不用帶包,我就不信調不通
    最后 謝謝:)  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-11-28 16:36 | xiao
    第一個Struts 2.0應用程序——Hello World
    運行沒問題

    當我在瀏覽器中
    鍵入http://localhost:8080/Struts2_HelloWorld/SayHello.jsp
    后臺報異常:
    org.xml.sax.SAXParseException: Element type "bean" must be declared.

    不知是什么原因

    我都弄了一下午都沒解決問題

    麻煩各位了


      回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-11-30 13:52 | 不能說
    是不是Tomcat5.0不能跑Struts2.0啊???  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-12-08 18:25 |
    非常好!~  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-12-08 18:26 |
    ddd  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-12-08 18:27 |
    @月
    ddd  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-12-18 14:16 | windylovesandy
    我的出錯,以下錯誤是怎么回事?
    我不知道struts-tags.jar在哪來?我在lib中沒有找到,應該放在哪里。希望指教以下
    HTTP Status 500 -

    type Exception report

    message

    description The server encountered an internal error () that prevented it from fulfilling this request.

    exception

    org.apache.jasper.JasperException: File "/struts-tags" not found
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:50)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:114)
    org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:159)
    org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:423)
    org.apache.jasper.compiler.Parser.parseDirective(Parser.java:492)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1552)
    org.apache.jasper.compiler.Parser.parse(Parser.java:126)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:211)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:146)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

    note The full stack trace of the root cause is available in the Apache Tomcat/5.5.12 logs.  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-12-20 11:40 | 阿祥
    比較好!講得比較細!thanks (the team)  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-12-20 17:19 |
    有問題說出來  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-12-29 00:38 | 凌晨風
    2007-12-29 0:24:48 org.apache.struts2.components.Form evaluateExtraParamsServletRequest
    警告: No configuration found for the specified action: 'login.action' in namespace: ''. Form action defaulting to 'action' attribute's literal value.
    2007-12-29 0:24:48 org.apache.struts2.components.Form evaluateExtraParamsServletRequest
    警告: No configuration found for the specified action: 'login.action' in namespace: ''. Form action defaulting to 'action' attribute's literal value.

    出現如下錯誤,程序運行正常!不知道只是怎么回事?
    錯誤發生在login.jsp頁面刷新時就出現。  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2007-12-30 16:28 | xx
    做個視頻多方便,這樣一張一張的截圖很麻煩  回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2008-01-01 18:12 | aa
    @新手
    寫action的名字  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2008-01-07 17:20 | C++
    警告: No configuration found for the specified action: 'HelloWorld' in namespace: ''. Form action defaulting to 'action' attribute's literal value.
    2008-1-7 16:11:44 org.apache.struts2.components.Form evaluateExtraParamsServletRequest
    警告: No configuration found for the specified action: 'HelloWorld' in namespace: ''. Form action defaulting to 'action' attribute's literal value.


    我都弄了2個星期了,暈死了!  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2008-01-08 15:34 | 自由化xl
    挺不錯的, 謝謝樓主的細心總結!  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2008-01-11 23:16 | bizairshop
    很好的例子
    北京機票推薦 http://www.newskyair.com  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2008-01-18 14:12 | tt
    @C++
    表單提交的 action name 和 struts.xml 的 action name 是否相同  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2008-01-20 14:04 | 陳龍
    是個好文章  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2008-01-23 16:27 | 漂泊
    警告: No configuration found for the specified action: 'HelloWorld' in namespace
    : ''. Form action defaulting to 'action' attribute's literal value.
    2008-1-23 16:21:56 org.apache.struts2.components.Form evaluateExtraParamsServlet
    Request
    警告: No configuration found for the specified action: 'HelloWorld' in namespace
    : ''. Form action defaulting to 'action' attribute's literal value.

    什麼原因?

      回復  更多評論
      
    # re: 為Struts 2.0做好準備 2008-01-23 17:04 | C++
    @tt
    我的代碼全是照著復制、粘貼的,不會有錯,我也反復檢查過N!遍。郁悶。謝謝tt大俠了  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2008-01-24 17:16 |
    junit.framework.AssertionFailedError: /WEB-INF/web.xmlが見つかりません
    at servletunit.struts.MockStrutsTestCase.getActionServlet(MockStrutsTestCase.java:344)
    at servletunit.struts.MockStrutsTestCase.tearDown(MockStrutsTestCase.java:130)
    at junit.framework.TestCase.runBare(TestCase.java:130)
    at junit.framework.TestResult$1.protect(TestResult.java:106)
    at junit.framework.TestResult.runProtected(TestResult.java:124)
    at junit.framework.TestResult.run(TestResult.java:109)
    at junit.framework.TestCase.run(TestCase.java:118)
    at junit.framework.TestSuite.runTest(TestSuite.java:208)
    at junit.framework.TestSuite.run(TestSuite.java:203)
    at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

    我用MockStrutsTestCase框架做的一個簡單測試,哪位老兄幫忙看看是什么問題啊?

      回復  更多評論
      
    # re: 為Struts 2.0做好準備 2008-01-27 13:38 | jinruihua
    @zero
    可能是你的.jsp頁面的action名與struts中的action不一致導致。
    maybe help.  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2008-01-28 16:38 |
    是一致的,被測試的代碼都是成品了,應該不是代碼的問題  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2008-02-17 18:46 | 111
    @jarwang
    那是因為你的表單的編碼還是ISO8859-1。  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2008-02-21 14:23 | laibin
    謝謝!  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2008-02-22 09:12 | GG_wg
    例子不錯,我測試中文提交也沒有問題(firefox)  回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2008-02-22 17:10 | lee
    提交表單后顯示下如錯誤:
    警告: No configuration found for the specified action: 'HelloWorld' in namespace: ''. Form action defaulting to 'action' attribute's literal value.
    2008-2-22 17:08:55 org.apache.struts2.components.Form evaluateExtraParamsServletRequest  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2008-03-10 11:35 | yuan29346
    多謝!
    我是在JBuider上工作的,按照你的提示,呵呵,順利搞定到JB中了。
    現在剛準備學這個struts2,現在有很多疑問啊!很郁悶,我們公司不用這個。
    比如:
    <s:form action="Login">
    <s:text name="username"/><s:textfield key="username"/>
    <s:text name="password"/><s:password key="password" />
    <s:submit/>
    </s:form>
    這個會自動輸出table,和我想要的不一樣!我相知道怎么樣才能控制輸出的HTML標簽?
      回復  更多評論
      
    # re: 為Struts 2.0做好準備 2008-03-13 16:45 | zhengtu
    太牛了;
    照做了;
    沒問題;
    講的很細;
    謝謝.  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2008-03-18 09:20 | 小魏
    照做的,完全正確,在這個過程中遇到許多問題,解決之后發現自己學習到很多:)
    謝謝:)  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2008-03-18 12:33 | 木風口子
    我第一次運行HelloWorld沒有問題,但后來又不行了,一直報錯:
    HTTP Status 404 - /projects/struts/Struts2_HelloWorld

    --------------------------------------------------------------------------------

    type Status report

    message /projects/struts/Struts2_HelloWorld

    description The requested resource (/projects/struts/Struts2_HelloWorld) is not available.

    導出的WAR文件在ROOT/projects/struts/下
    本機配置:
    jdk1.5,
    eclipse為最新europe
    tomcat5.0.30
    沒有加載包,因為我已經有lomboz struts包
    不會是沒加包的原因,
    請賜教!多謝!  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2008-03-25 17:21 | visitor
    @凌晨風
    也困繞我半天。。。
    后來照另外的教程做出一個可以跑的,再Beyond compare比較一下,發現是建立struts.xml時錯了,名字不對,浪費好幾個小時  回復  更多評論
      
    # re: 為Struts 2.0做好準備[未登錄] 2008-03-25 22:37 | 綠茶
    你好..謝謝..我覺得就是tomcat最好是5.x或6.X..JDK1.5以上吧..我剛開始也是按你說的那樣去測試..在以前的版本上測試..都不行..后來下了個新版..就可以了..還是就是...struts.xml一定要放在classess目錄下...  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2008-03-28 20:01 | pakinsen
    我按照你的方法做了,第一部分是成功的,但是第二步添加了那幾個JSP文件后,一打開TOMCAT就說找不到SayHello.jsp。這是為什么呢?我反復看了你的文章,沒有地方不一致啊。  回復  更多評論
      
    # re: 為Struts 2.0做好準備 2008-04-07 10:39 | 小新手
    我用的是myeclipse5.0 tomcat5.5 struts2.0.11.1的包,按照上面的步驟連第一部分都不能正常運行,如果不按照上面步驟修改web.xml內容的話第一步反而能實現,但第二部分仍然不能實現,為什么呢。。。。  回復  更多評論
      
    評論共4頁: 上一頁 1 2 3 4 下一頁 
    主站蜘蛛池模板: 久久青青草原亚洲av无码app| 福利免费在线观看| 亚洲色大成网站www永久| www亚洲一级视频com| 性生交片免费无码看人| 午夜影院免费观看| 国产精品小视频免费无限app| 亚洲熟妇无码八V在线播放| 亚洲福利在线视频| 亚洲精品无码久久久影院相关影片| 日韩免费在线观看| 成人爽A毛片免费看| 久久午夜夜伦鲁鲁片免费无码影视| 久久国产一片免费观看| 杨幂最新免费特级毛片| 国产亚洲玖玖玖在线观看| 4480yy私人影院亚洲| 亚洲AV无码久久精品色欲| 国产AⅤ无码专区亚洲AV| 亚洲av无码天堂一区二区三区| 在线播放高清国语自产拍免费| 99久久精品日本一区二区免费| 久久青草91免费观看| 久久免费精品一区二区| 99久久精品毛片免费播放| 国产免费人成视频尤勿视频| 免费一级特黄特色大片| 老司机亚洲精品影院在线观看| 亚洲人成网亚洲欧洲无码| 在线观看日本亚洲一区| 亚洲综合久久一本伊伊区| 亚洲伊人久久大香线蕉结合| 亚洲国产成人精品久久| 亚洲国产成人91精品| 亚洲av极品无码专区在线观看 | 自拍偷自拍亚洲精品偷一| 国产精品无码亚洲一区二区三区| 亚洲日本在线电影| 亚洲国产区男人本色| 色偷偷亚洲第一综合网| 无码毛片一区二区三区视频免费播放|