隨筆 - 312, 文章 - 14, 評(píng)論 - 1393, 引用 - 0

          導(dǎo)航

          <2014年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          公告

          關(guān)注我的新浪微博

          我的著作









          常用鏈接

          留言簿(126)

          我參與的團(tuán)隊(duì)

          隨筆分類(818)

          隨筆檔案(310)

          文章分類(1)

          文章檔案(8)

          相冊(cè)

          ADSL、3G查詢

          CSDN

          eclipse

          ibm

          Java EE

          Linux

          Web

          云服務(wù)

          代理網(wǎng)站

          關(guān)注的網(wǎng)站

          協(xié)議

          喜歡的Blog

          國(guó)內(nèi)廣告平臺(tái)

          圖書出版

          在線培訓(xùn)

          開(kāi)發(fā)工具

          微博客戶端

          手機(jī)鈴聲

          操作系統(tǒng)

          • ReactOS
          • 一個(gè)與windowXP/2003兼容的操作系統(tǒng)

          數(shù)學(xué)

          文件格式

          源碼資源

          移動(dòng)(Mobile)

          編程語(yǔ)言

          英語(yǔ)學(xué)習(xí)

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 1974484
          • 排名 - 6

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          Struts2教程1:第一個(gè)Struts2程序

          本文為原創(chuàng),如需轉(zhuǎn)載,請(qǐng)注明作者和出處,謝謝!


           在本系列教程中我們將學(xué)習(xí)到Struts2的各種技術(shù)。在本教程中使用的工具和程序庫(kù)的版本如下:

          開(kāi)發(fā)工具:MyEclipse6

          Web服務(wù)器:Tomcat6

          Struts版本:Struts2.0.11.1

          JDK版本:JDK1.5.0_12

          J2EE版本:Java EE5.0

              在本系列教程中Web工程的上下文路徑都是struts2,如果在Web根目錄有一個(gè)index.jsp文件,則訪問(wèn)路徑如下:

          http://localhost:8080/struts2/index.jsp

              由于MyEclipse6目前并不支持Struts2,所以我們需要到struts.apache.org去下載Struts2安裝包。要想正常使用Struts2,至少需要如下五個(gè)包(可能會(huì)因?yàn)?/span>Struts2的版本不同,包名略有差異,但包名的前半部是一樣的)。

          struts2-core-2.0.11.1.jar

          xwork-2.0.4.jar

          commons-logging-1.0.4.jar

          freemarker-2.3.8.jar

          ognl-2.6.11.jar

              Struts2雖然在大版本號(hào)上是第二個(gè)版本,但基本上在配置和使用上已經(jīng)完全顛覆了Struts1.x的方式(當(dāng)然,Struts2仍然是基于MVC模式的,也是動(dòng)作驅(qū)動(dòng)的,可能這是唯一沒(méi)變的東西)。Struts2實(shí)際上是在Webwork基礎(chǔ)上構(gòu)建起來(lái)的MVC框架。我們從Struts2的源代碼中可以看到,有很多都是直接使用的xwork(Webwork的核心技術(shù))的包。既然從技術(shù)上來(lái)說(shuō)Struts2是全新的框架,那么就讓我們來(lái)學(xué)習(xí)一下這個(gè)新的框架的使用方法。

              如果大家使用過(guò)Struts1.x,應(yīng)該對(duì)建立基于Struts1.xWeb程序的基本步驟非常清楚。讓我們先來(lái)回顧一下建立基于Struts1.xWeb程序的基本步驟。

          1.        安裝Struts。由于Struts的入口點(diǎn)是ActionServlet,所以得在web.xml中配置一下這個(gè)Servlet

          2.        編寫Action類(一般從org.apache.struts.action.Action類繼承)。

          3.        編寫ActionForm類(一般從org.apache.struts.action.ActionForm類繼承),這一步不是必須的,如果要接收客戶端提交的數(shù)據(jù),需要執(zhí)行這一步。

          4.        struts-config.xml文件中配置ActionActionForm

          5.        如果要采集用戶錄入的數(shù)據(jù),一般需要編寫若干JSP頁(yè)面,并通過(guò)這些JSP頁(yè)面中的form將數(shù)據(jù)提交給Action

          下面我們就按著編寫struts1.x程序的這五步和struts2.x程序的編寫過(guò)程一一對(duì)應(yīng),看看它們誰(shuí)更“酷”。下面我們來(lái)編寫一個(gè)基于Struts2Web程序。這個(gè)程序的功能是讓用戶錄入兩個(gè)整數(shù),并提交給一個(gè)Struts Action,并計(jì)算這兩個(gè)數(shù)的代數(shù)和,如果代碼和為非負(fù)數(shù),則跳轉(zhuǎn)到positive.jsp頁(yè)面,否則跳轉(zhuǎn)到negative.jsp頁(yè)面。

           

          【第1步】 安裝Struts2

              這一步對(duì)于Struts1.xStruts2都是必須的,只是安裝的方法不同。Struts1的入口點(diǎn)是一個(gè)Servlet,而Struts2的入口點(diǎn)是一個(gè)過(guò)濾器(Filter)。因此,Struts2要按過(guò)濾器的方式配置。下面是在web.xml中配置Struts2的代碼:

          <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>

           

          【第2步】 編寫Action

              這一步和Struts1.x也必須進(jìn)行。只是Struts1.x中的動(dòng)作類必須從Action類中繼承,而Struts2.x的動(dòng)作類需要從com.opensymphony.xwork2.ActionSupport類繼承。下面是計(jì)算兩個(gè)整數(shù)代碼和的Action類,代碼如下:
          package action;
            
          import com.opensymphony.xwork2.ActionSupport;
            
          public class FirstAction extends ActionSupport
          {
              
          private int operand1;
              
          private int operand2;
            
              
          public String execute() throws Exception
              {
                  
          if (getSum() >= 0)  // 如果代碼數(shù)和是非負(fù)整數(shù),跳到positive.jsp頁(yè)面
                  {
                      
          return "positive";
                  }
                  
          else  // 如果代碼數(shù)和是負(fù)整數(shù),跳到negative.jsp頁(yè)面
                  {
                      
          return "negative";
                  }
              }
            
              
          public int getOperand1()
              {
                  
          return operand1;
              }
            
              
          public void setOperand1(int operand1)
              {
                  System.out.println(operand1);
                    
          this.operand1 = operand1;
              }
            
              
          public int getOperand2()
              {
                  
          return operand2;
              }  
              
          public void setOperand2(int operand2)
              {
                  System.out.println(operand2);
                  
          this.operand2 = operand2;
              }
              
          public int getSum()
              {
                  
          return operand1 + operand2;  // 計(jì)算兩個(gè)整數(shù)的代碼數(shù)和
              }
          }
           

          從上面的代碼可以看出,動(dòng)作類的一個(gè)特征就是要覆蓋execute方法,只是Struts2execute方法沒(méi)有參數(shù)了,而Struts1.xexecute方法有四個(gè)參數(shù)。而且execute方法的返回值也不同的。Struts2只返回一個(gè)String,用于表述執(zhí)行結(jié)果(就是一個(gè)標(biāo)志)。上面代碼的其他部分將在下面講解。

          【第3步】 編寫ActionForm

              在本例中當(dāng)然需要使用ActionForm了。在Struts1.x中,必須要單獨(dú)建立一個(gè)ActionForm類(或是定義一個(gè)動(dòng)作Form),而在Struts2ActionFormAction已經(jīng)二合一了。從第二步的代碼可以看出,后面的部分就是應(yīng)該寫在ActionForm類中的內(nèi)容。所以在第2步,本例的ActionForm類已經(jīng)編寫完成(就是Action類的后半部分)。

          【第4步】 配置Action

              這一步struts1.xstruts2.x都是必須的,只是在struts1.x中的配置文件一般叫struts-config.xml(當(dāng)然也可以是其他的文件名),而且一般放到WEB-INF目錄中。而在struts2.x中的配置文件一般為struts.xml,放到WEB-INF"classes目錄中。下面是在struts.xml中配置動(dòng)作類的代碼:

          <?xml version="1.0" encoding="UTF-8" ?>
            
          <!DOCTYPE struts PUBLIC
                "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
                "http://struts.apache.org/dtds/struts-2.0.dtd"
          >
            
          <struts>
                
          <package name="struts2" namespace="/mystruts"
                    extends
          ="struts-default">
                    
          <action name="sum" class="action.FirstAction">
                        
          <result name="positive">/positive.jsp</result>
                        
          <result name="negative">/negative.jsp</result>
                    
          </action>
                
          </package>
            
          </struts>
           

          <struts>標(biāo)簽中可以有多個(gè)<package>,第一個(gè)<package>可以指定一個(gè)Servlet訪問(wèn)路徑(不包括動(dòng)作名),如“/mystruts”。extends屬性繼承一個(gè)默認(rèn)的配置文件“struts-default”,一般都繼承于它,大家可以先不去管它。<action>標(biāo)簽中的name屬性表示動(dòng)作名,class表示動(dòng)作類名。

              <result>標(biāo)簽的name實(shí)際上就是execute方法返回的字符串,如果返回的是“positive”,就跳轉(zhuǎn)到positive.jsp頁(yè)面,如果是“negative”,就跳轉(zhuǎn)到negative.jsp頁(yè)面。在<struts>中可以有多個(gè)<package>,在<package>中可以有多個(gè)<action>。我們可以用如下的URL來(lái)訪問(wèn)這個(gè)動(dòng)作:

          http://localhost:8080/struts2/mystruts/sum.action

          Struts1.x的動(dòng)作一般都以.do結(jié)尾,而Struts2是以.action結(jié)尾。

          【第5步】 編寫用戶錄入接口(JSP頁(yè)面)

          1.       主界面(sum.jsp

          Web根目錄建立一個(gè)sum.jsp,代碼如下:

          <%@ page language="java" import="java.util.*" pageEncoding="GBK" %>
            
          <%@ taglib prefix="s" uri="/struts-tags"%>
            
            
          <html>
                
          <head>
                    
          <title>輸入操作數(shù)</title>
                
          </head>
            
                
          <body>
                     求代數(shù)和
                    
          <br/>
                    
          <s:form action="mystruts/sum.action" >                
                        
          <s:textfield name="operand1" label=" 操作數(shù)1"/>
                        
          <s:textfield name="operand2"  label=" 操作數(shù)2" />        
                        
          <s:submit value="代數(shù)和" />            
                    
          </s:form>
                
          </body>
            
          </html>
           

          sum.jsp中使用了Struts2帶的tag。在Struts2中已經(jīng)將Struts1.x的好幾個(gè)標(biāo)簽庫(kù)都統(tǒng)一了,在Struts2中只有一個(gè)標(biāo)簽庫(kù)/struts-tags。這里面包含了所有的Struts2標(biāo)簽。但使用Struts2的標(biāo)簽大家要注意一下。在<s:form>中最好都使用Struts2標(biāo)簽,盡量不要用HTML或普通文本,大家可以將sum.jsp的代碼改為如下的形式,看看會(huì)出現(xiàn)什么效果:

                   ... ...

                     求代數(shù)和

                    <br/>

                    <s:form action="mystruts/sum.action" >               

          操作數(shù)1<s:textfield name="operand1" /><br/>

          操作數(shù)2<s:textfield name="operand1" /><br/>

                        <s:submit value="代數(shù)和" />           

                    </s:form>

                    ... ...

              提示一下,在<s:form>Struts2使用<table>定位。

          2.       positive.jsp

          <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
            
          <%@ taglib prefix="s" uri="/struts-tags" %>
            
            
          <html>
              
          <head>
                
          <title>顯示代數(shù)和</title>
              
          </head>
              
              
          <body>    
                代數(shù)和為非負(fù)整數(shù)
          <h1><s:property value="sum" /></h1>
              
          </body>
            
          </html> 
           

          3.       negative.jsp

           <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
            
          <%@ taglib prefix="s" uri="/struts-tags" %>
            
            
          <html>
              
          <head>
                
          <title>顯示代數(shù)和</title>
              
          </head>
              
              
          <body>
                代數(shù)和為負(fù)整數(shù)
          <h1><s:property value="sum" /></h1>
                
              
          </body>
            
          </html> 

           

              這兩個(gè)jsp頁(yè)面的實(shí)現(xiàn)代碼基本一樣,只使用了一個(gè)<s:property>標(biāo)簽來(lái)顯示Action類中的sum屬性值。<s:property>標(biāo)簽是從request對(duì)象中獲得了一個(gè)對(duì)象中得到的sum屬性,如我們可以使用如下的代碼來(lái)代替<s:property value=”sum”/>

           

          <%

           com.opensymphony.xwork2.util.OgnlValueStack ovs =

          (com.opensymphony.xwork2.util.OgnlValueStack)request.getAttribute("struts.valueStack"); 

           out.println(ovs.findString("sum")); 

          %>

              啟動(dòng)Tomcat后,在IE中輸入如下的URL來(lái)測(cè)試這個(gè)例子:

          http://localhost:8080/struts2/sum.jsp


          下一篇:Struts2教程2:處理一個(gè)form多個(gè)submit





          Android開(kāi)發(fā)完全講義(第2版)(本書版權(quán)已輸出到臺(tái)灣)

          http://product.dangdang.com/product.aspx?product_id=22741502



          Android高薪之路:Android程序員面試寶典 http://book.360buy.com/10970314.html


          新浪微博:http://t.sina.com.cn/androidguy   昵稱:李寧_Lining

          posted on 2008-04-15 22:41 銀河使者 閱讀(187379) 評(píng)論(77)  編輯  收藏 所屬分類: Struts2 原創(chuàng)

          評(píng)論

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          struts 1.x 挺好的一個(gè)框架改成這樣,悲哀!!!
          2008-04-18 14:59 | 山東人

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          贊一個(gè)! struts 2 的開(kāi)發(fā)效率比1高很多
          2008-04-27 17:59 | 漠漠

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          如果IDE很好支持的話,開(kāi)發(fā)效率大幅提高!
          2008-04-29 11:37 | folcan

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          太好了再詳細(xì)就可以出書了
          2008-07-22 22:28 | eee

          # re: Struts2教程1:第一個(gè)Struts2程序[未登錄](méi)  回復(fù)  更多評(píng)論   

          寫得太棒了 一看就明白了struts2的原理流程 感激萬(wàn)分額 ,struts2不再神秘 o(∩_∩)o...
          2008-08-18 01:47 | 小毅

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          剛搞懂Struts 1.x流程,就看了Struts2.x這篇文章
          2008-08-21 10:01 | Angel_小勇

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          頂一個(gè)!
          2008-08-25 17:22 | 十三

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          寫的非常的好,我剛剛開(kāi)始學(xué)就領(lǐng)悟了不少。
          2008-08-27 20:39 | 曉鵬

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          good
          2008-08-28 14:00 | ixix

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          支持原創(chuàng),謝謝交流!
          2008-09-01 23:51 | 心夢(mèng)帆影

          # re: Struts2教程1:第一個(gè)Struts2程序[未登錄](méi)  回復(fù)  更多評(píng)論   

          謝謝!
          2008-09-22 22:39 | tom

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          說(shuō)的不完全正確,有些片面
          2008-09-25 08:44 | yefeng

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          寫得很清楚,謝謝!
          2008-11-01 11:15 | daoyongyu

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          我測(cè)試了,總是報(bào),找不到action,這個(gè)怎么解決呢?可以發(fā)郵件告訴我嗎?
          fordfox@foxmail.com
          2008-11-10 15:03 | luo

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          真的運(yùn)行不了啊
          2009-02-11 22:23 | 123

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          @123
          運(yùn)行不了可能是配置錯(cuò)了,把錯(cuò)誤信息和配置方法貼出來(lái)看看。Java的東西剛開(kāi)始是誰(shuí)都會(huì)為配置頭痛,慢慢就好了。
          2009-02-11 22:32 | 銀河使者

          # re: Struts2教程1:第一個(gè)Struts2程序[未登錄](méi)  回復(fù)  更多評(píng)論   

          頁(yè)面上那個(gè)sum屬性從哪來(lái)的呢?莫非是action中的getSum?
          2009-03-12 14:13 | yxy

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          @yxy
          是的,這個(gè)sum屬性是Action類的屬性,通過(guò)getSum方法獲得這個(gè)值,如果對(duì)struts 2處理數(shù)據(jù)的原理不了解,可以看下面的文章:
          Struts 2雜談(1):ValueStack對(duì)象的傳送帶機(jī)制
          http://www.aygfsteel.com/nokiaguy/archive/2009/02/archive/2009/02/11/254314.html
          2009-03-12 14:44 | 銀河使者

          # re: Struts2教程1:第一個(gè)Struts2程序[未登錄](méi)  回復(fù)  更多評(píng)論   

          @銀河使者
          sum,我在action類里沒(méi)看有這個(gè)類變量啊,只有一個(gè)getSum()方法,莫非struts2可以把getXXX方法中的XXX映射成一個(gè)變量?
          2009-03-12 23:03 | yxy

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          @yxy
          在Java中沒(méi)有屬性語(yǔ)法,所謂屬性,只是getter和setter方法的組合,如果只有g(shù)etter方法,則該屬性是只讀屬性。 如果訪問(wèn)的屬性是sum,Struts 2會(huì)自動(dòng)調(diào)用Action類中的getSum方法來(lái)獲得sum屬性的值,調(diào)用setSum方法來(lái)設(shè)置sum屬性的值。

          實(shí)際上,java中的屬性訪問(wèn)就是訪問(wèn)getter和setter方法。

          2009-03-13 08:40 | 銀河使者

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          @yxy
          另外,包含getter和setter方法的類可以稱為JavaBean
          2009-03-13 08:46 | 銀河使者

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          @yxy
          還有就是Java中的屬性只是getter和setter方法,并不一定要有sum變量,getter方法可以從其他的資源獲得相應(yīng)的值,如文件、網(wǎng)絡(luò)。當(dāng)訪問(wèn)sum變量時(shí),struts 2會(huì)自動(dòng)調(diào)用getSum方法。
          2009-03-13 08:51 | 銀河使者

          # re: Struts2教程1:第一個(gè)Struts2程序[未登錄](méi)  回復(fù)  更多評(píng)論   

          @銀河使者
          謝謝,我了解了,我以前看的大部分例子,只有class里面有變量,才對(duì)這個(gè)變量setter、getter,所以一下子沒(méi)理解過(guò)來(lái)。看來(lái)還是了解少了啊
          2009-03-13 11:17 | yxy

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          運(yùn)行不起來(lái),出現(xiàn)404錯(cuò)誤: The requested resource () is not available.
          2009-03-13 15:09 | likestruts

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          @likestruts
          404是沒(méi)找到web資源,路徑錯(cuò)了,或配置時(shí)有錯(cuò)誤。把你的詳細(xì)步驟以及訪問(wèn)的url發(fā)出來(lái)看看。
          2009-03-13 15:48 | 銀河使者

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          樓主,我用的是,struts2.0.14,tomcat5.5,在web.xml下要寫下面這種東西嗎?為什么一直報(bào)“org.apache.jasper.JasperException: JSP ファイル "/struts-tags" が見(jiàn)つかりません”

          <taglib>
          <taglib-uri>/struts-tags</taglib-uri>
          <taglib-location>/WEB-INF/lib/struts2-core-2.0.14.jar
          </taglib-location>
          </taglib>

          2009-04-10 11:12 | helphelphelp

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          @helphelphelp
          不需要,報(bào)這個(gè)錯(cuò)誤可能是你的JSP代碼有錯(cuò)誤!仔細(xì)檢查一下。
          2009-04-10 15:55 | 銀河使者

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          警告: No configuration found for the specified action: 'mystruts/sum.action' in namespace: ''. Form action defaulting to 'action' attribute's literal value.
          請(qǐng)問(wèn)上面的警告會(huì)是哪里出了問(wèn)題呢?謝謝!
          2009-04-22 13:41 | mysheros

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          在服務(wù)端的控件臺(tái)中,或eclipse的console里
          2009-04-22 13:49 | 銀河使者

          # re: Struts2教程1:第一個(gè)Struts2程序[未登錄](méi)  回復(fù)  更多評(píng)論   

          謝謝,但是我發(fā)布以后如果輸入兩個(gè)正書,一切正常,輸入如果有負(fù)數(shù)就會(huì)報(bào)404,No result defined for action action.FirstAction and result input

          console里面的錯(cuò)誤是
          WARNING: Error setting value
          ognl.MethodFailedException: Method "setNum1" failed for object action.FirstAction@c524dd [java.lang.NoSuchMethodException: setNum1([Ljava.lang.String;)]

          另外我也不斷得到
          WARNING: No configuration found for the specified action: 'mystruts/sum.action' in namespace: '/mystruts'. Form action defaulting to 'action' attribute's literal value.
          05-May-2009 09:26:27 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn

          的報(bào)錯(cuò),我嘗試過(guò)delete namespace="/mystruts" 在 struts.xml但是為題依然存在
          2009-05-05 09:31 | Tom

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          樓上的那個(gè)警告是因?yàn)檫@篇教程上的<s:form>不標(biāo)準(zhǔn)。
          需要寫成
          <s:form name="sumform" method="post" action="sum" namespace="/mystruts">

          .action是不需要加上的。
          namespace需要標(biāo)出。
          2009-12-06 14:43 | xinyu126

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          對(duì)我太重要了,再次感謝
          2010-08-20 10:41 | 袁征

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          謝謝,幫助真的很大!
          2010-09-09 20:49 | 本拉登

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          頂!
          我頂!
          我狂頂!
          我頂?shù)剿溃?
          2010-11-15 23:21 | goshinever

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          學(xué)習(xí)了
          2010-11-26 21:12 | sss

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          不錯(cuò)啊,有收獲,雖然不多,,頂Good
          2010-12-26 13:28 | Jocson

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          我是一個(gè)struts2.0的初學(xué)者,所以就照著你說(shuō)的做,然后就也出現(xiàn)了你BlogJava別人回復(fù)的那些問(wèn)題。后來(lái)搞定。發(fā)現(xiàn)你的第4步 "而在struts2.x中的配置文件一般為struts.xml,放到WEB-INFclasses目錄中" 讓我產(chǎn)生了誤解,我就在MyEclipse下面的Navigator視圖中的classes下面創(chuàng)建了這個(gè)文件,但是報(bào)了 cant find source 的錯(cuò)誤,后來(lái)發(fā)現(xiàn)這個(gè)文件是需要在src下面創(chuàng)建,在編譯的時(shí)候會(huì)自動(dòng)編到classes目錄下面。希望博主下次文章能更加具體點(diǎn)(把我們當(dāng)文盲最好),因?yàn)槲覀兒芏鄇ava初學(xué)者的還有很多常識(shí)不知道。
          2011-02-22 17:03 | ljjy23

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          非常不錯(cuò),看了之后思路清晰,但對(duì)于我們初學(xué)者來(lái)說(shuō),能否給出:上面的文件需要放置在什么位置?就象struts.xml應(yīng)該放置到WEB-INF/src(備注:會(huì)自動(dòng)編譯到WEB-INF/classes)那就更完美了!
          2011-03-23 20:01 | 林子

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          對(duì)我?guī)椭艽螅斊?
          2011-04-12 22:52 | blacksun

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          我覺(jué)得看了以后感覺(jué)還不錯(cuò)。剛好那些名字我不會(huì)放位置、 看了感覺(jué)會(huì)了那么一點(diǎn),
          2011-04-15 23:30 | 曉琳

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          有問(wèn)題的,sum.jsp中的form沒(méi)對(duì)應(yīng)的action,根本就轉(zhuǎn)不過(guò)去
          2011-05-04 17:59 | fatestar

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          寫得太好太詳細(xì)了 我沒(méi)接觸過(guò)struts2 但是看完之后 就大概明白了
          2011-05-09 23:13 |

          # re: Struts2教程1:第一個(gè)Struts2程序[未登錄](méi)  回復(fù)  更多評(píng)論   

          我不想用MyEclipse 我只想用Eclipse,請(qǐng)問(wèn)我要怎么整合啊?
          2011-05-12 09:32 | 小菜鳥(niǎo)

          # re: Struts2教程1:第一個(gè)Struts2程序[未登錄](méi)  回復(fù)  更多評(píng)論   

          寫的真好,希望作者可以寫的再詳細(xì)一點(diǎn),把每個(gè)知識(shí)點(diǎn)都能在例子下講一下,讓讀者看的更明白點(diǎn),還有就是后續(xù)希望把spring和hibernate也能詳細(xì)的講解一下,因?yàn)閖ava就是玩框架呢。萬(wàn)分感謝
          2011-05-16 16:30 | java

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          好東西啊 真的!!!
          2011-05-31 21:33 | ealge

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          你的代碼不能再判斷頁(yè)面上顯示sum的值,
          <h1><s:property value="sum" /></h1>
          顯示不出來(lái),沒(méi)有sum屬性,在Action里你的返回方法只有operand的相加
          2011-06-30 13:02 | finalarcher

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          yes
          2011-07-12 17:32 | ss

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          把struts。xml配置文件放到srcxia
          2011-07-19 10:38 | yangyang

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          太感謝作者了,寫得太好了!
          2011-08-03 10:07 | yll

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          寫的不錯(cuò)
          2011-08-03 15:40 | yhc

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          頁(yè)面不能顯示sum的值 請(qǐng)問(wèn)該怎么解決?》
          2011-11-07 16:48 | truck

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          很好的文章,我才開(kāi)始學(xué)習(xí)struts2希望老師能多出點(diǎn)struts2的文章
          2011-11-11 09:34 | 小徐

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          老是報(bào)404錯(cuò)誤,~~~
          2011-12-01 16:16 | pengkw

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          缺少了
          public void setOperand1(int operand1){
          this.operand1 = operand1;
          }
          2011-12-14 18:32 | xwd

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          @helphelphelp
          我無(wú)所謂Struts1,Struts2.x一樣的然啊
          2011-12-30 01:48 | 叫我老子就行

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          我啥都不會(huì)!我老師啥都不給我叫,光給我班的同學(xué)講,不信不要說(shuō)我亂嗷嗷叫哦
          2011-12-30 01:51 | 叫我老子就行

          # re: Struts2教程1:第一個(gè)Struts2程序[未登錄](méi)  回復(fù)  更多評(píng)論   

          講的挺好,如果有視頻就更好了。。。
          2012-01-18 11:55 | zheng

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          很好的教程,不過(guò)一開(kāi)始就把標(biāo)簽用進(jìn)來(lái)感覺(jué)有點(diǎn)暈
          2013-05-09 16:47 | 商商

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          struts.xml文件放在src目錄下
          2013-06-07 00:29 | asd

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          頂頂頂頂頂頂頂頂頂頂頂頂頂頂頂頂頂頂頂頂頂頂頂頂頂頂頂頂
          2013-07-11 17:02 | adsfasdlfjkalskdgja

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          hujintao
          2013-07-19 16:19 | 133

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          struts2的第一個(gè)樣例helloworld出錯(cuò)啦,各種方法都解決不了,求幫忙
          具體問(wèn)題在http://bbs.51cto.com/viewthread.php?tid=1065695&pid=5353805&page=1&extra=page%3D1#pid5353805
          2013-07-29 10:53 | aimsky10

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          動(dòng)作驅(qū)動(dòng),請(qǐng)樓主解釋下具體是什么意思?
          2013-09-09 08:37 | 哈林

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          寫得太好太詳細(xì)了 我沒(méi)接觸過(guò)struts2 但是看完之后 就大概明白了。
          Apache的Struts2是一個(gè)優(yōu)雅的,可擴(kuò)展的框架,用于創(chuàng)建企業(yè)準(zhǔn)備的Java Web應(yīng)用程序。該框架旨在簡(jiǎn)化整個(gè)開(kāi)發(fā)周期,從構(gòu)建,部署,維護(hù)應(yīng)用程序隨著時(shí)間的推移。 Apache的Struts2最初被稱為WebWork2。
          本教程將教你如何使用Apache的Struts創(chuàng)建企業(yè)級(jí)Java Web應(yīng)用程序。
          讀者
          本教程是專為需要了解Struts2.x 框架中及其應(yīng)用Java程序員準(zhǔn)備的。
          前提條件
          繼續(xù)本教程之前,你應(yīng)該有一個(gè)很好的了解了Java編程語(yǔ)言。 MVC框架和JSP或Servlet 有一個(gè)基本的了解是很有幫助的。
          1 - Struts 2 快速指南
          一個(gè)快速的Struts為Struts程序員參考手冊(cè)。
          2 - Struts 2 有用資源
          Struts的網(wǎng)站,書籍和文章的集合:
          Apache Struts 項(xiàng)目 - http://struts.apache.org/
          Struts2教程 - http://www.yiibai.com/struts_2/
          Sun's Site on JSP - http://java.sun.com/products/jsp/.
          2013-11-14 07:45 | 哈林木

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          寫的不錯(cuò)
          2013-11-18 14:53 | 支持你

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          這個(gè)寫的真的挺好的 連那個(gè)登錄的頁(yè)面都謝了 對(duì)我這種初學(xué)者來(lái)說(shuō) 太給力了 頂起
          2013-11-25 20:27 | 我頂你

          # re: Struts2教程1:第一個(gè)Struts2程序, 404錯(cuò)誤的參考一下  回復(fù)  更多評(píng)論   

          我按照樓主的方法配置, 啟動(dòng)tomcat時(shí)報(bào)錯(cuò),如下:
          ......
          嚴(yán)重: Error filterStart
          2012-11-3 13:34:40 org.apache.catalina.core.StandardContext start
          嚴(yán)重: Context startup failed due to previous errors,
          ......
          且訪問(wèn)頁(yè)面時(shí)報(bào)404錯(cuò)誤, 提示The requested resource (/struts2/) is not available. 研究了一下, 原來(lái)我用的是tomcat5.0, jdk1.5 與 tomcat5.0之間的 TransformerFactoryImpl 類存在沖突引起的。

          要把TOMCAT5.0安裝目錄下的兩個(gè)JAR包刪除就可以
          1、\Tomcat 5.0\common\lib\tools.jar
          2、\Tomcat 5.0\common\endorsed\xml-apis.jar

          詳細(xì)參考: http://www.aygfsteel.com/wjywilliam/archive/2008/04/27/196637.html
          2014-02-07 16:06 | 呂小布

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          大哥時(shí)代在進(jìn)步好不。@山東人
          2014-02-09 20:32 | 便便

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          寫得通俗易懂,學(xué)習(xí)了
          2014-04-02 00:11 | shunshine

          # 。。。  回復(fù)  更多評(píng)論   

          .。。。。
          2014-04-02 17:44 | 。。。

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          web中配置成/*之后,表單提交不能用sum.action.應(yīng)該直接用sum
          2014-04-24 11:24 | 蔣雨辰

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          2014-06-04 16:02 | 我不是樓主

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          報(bào)這個(gè)錯(cuò):
          Problem accessing /Struts2 Reason: 503



          我建了2個(gè)struts2的例子了,都是報(bào)503,誰(shuí)來(lái)幫幫我下
          2014-06-04 16:04 | 我不是樓主

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          struts代碼下載:http://www.zuidaima.com/share/search.htm?key=struts
          2014-06-12 22:14 | zuidaima

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          縱觀樓上回帖無(wú)數(shù),我輩心煩,技術(shù)之多之雜令人心煩,今找到關(guān)于struts2教程最好的網(wǎng)站,請(qǐng)大家觀賞:http://www.strutshome.com/
          2014-07-12 23:43 | deepwater

          # re: Struts2教程1:第一個(gè)Struts2程序  回復(fù)  更多評(píng)論   

          struts.xml中的這一句,絕對(duì)不能要,會(huì)導(dǎo)致action無(wú)法解析
          <?xml version="1.0" encoding="UTF-8" ?>
          2015-01-08 23:03 | evo

          # re: Struts2教程1:第一個(gè)Struts2程序[未登錄](méi)  回復(fù)  更多評(píng)論   

          寫的很好 流程很詳細(xì) 正好最近需要學(xué)習(xí)一下struts2 看了頓悟 頂一個(gè)
          2015-03-25 15:55 | dsy
          主站蜘蛛池模板: 云安县| 高密市| 安西县| 东明县| 闽侯县| 扶沟县| 庆城县| 厦门市| 利津县| 江孜县| 石林| 侯马市| 内乡县| 黄梅县| 象州县| 临高县| 平远县| 广宁县| 龙游县| 上虞市| 张家川| 都匀市| 奉新县| 手机| 博湖县| 白玉县| 卓资县| 楚雄市| 瑞金市| 宽甸| 平阴县| 枣强县| 资兴市| 类乌齐县| 东乡族自治县| 洪江市| 荣昌县| 桑日县| 和硕县| 定日县| 勐海县|