一竿殘照.金棣 @ blogJava.net

          腳往哪兒,路往哪兒

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            5 Posts :: 0 Stories :: 8 Comments :: 0 Trackbacks

             這篇文章講述搭建筆者(一個門外漢)學習webwork的第一步-----搭建webwork環境,并測試第一個程序.

          [過程]
             1.安裝j2sdk.略
             2.安裝tomcat,略
             3.解壓webwork2.1.7,略
             
             
             4.為tomcat安裝webwork支持
                拷貝webwork2.1.7.jar和${webwork_home}\core\*.jar到${tomcat_home}\sharedlib目錄中.
             5.撰寫login.jsp,loginsucess.jsp,loginfailed.jsp,LoginAction.java.
                我們登錄login.jsp,輸入用戶名,post之后,請求將提交給LoginAction處理,如果成功則返回login-success.jsp,否則返回loginfailed.jsp
                我使用的eclipse3.0.1,并安裝了eclipseWork插件(不過整個過程)沒有合理的使用它,郁悶),
                login.jsp

          <html>
          <head>
          <title>WebWork Tutorial - Lesson 3 - Example 1</title>
          </head>

          <body>

          <p>
          Click the [post] button below to Login.
          </p>

          <form action="login.action" method="post">
          <p>user:<input type="text" name="user" value="" /></p>
          <p>password:<input type="password" name="password" value="" /></p>
          <p><input type="submit" value="post" /></p>
          </form>

          </body>
          </html>

          login-success.jsp


          <%@ taglib uri="webwork" prefix="ww" %> 
          <html>
           
          <head>
           
          <title>welcome to salary</title>
           
          </head>
           
          <body>
           

          <font color="green">


          <ww:property value="user" /> has logon [SalaryQueryModule]

          </font>

          <br>



          </body> 
          </html>

          login-failed.jsp


          <%@ taglib uri="webwork" prefix="ww" %> 
          <html>
           
          <head>
           
          <title>failed login</title>
           
          </head>
           
          <body>
           
          <font color="red">

          error login by [
          <ww:property value="user" /> ],invalid user or pwd
          </font>

          <br>
          </body> 
          </html>

          web.xml,位于web-inf目錄下

          <?xml version="1.0" encoding="UTF-8"?>
          <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation
          ="http://java.sun.com/xml/ns/j2ee 
              http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
          >


              
          <display-name>My WebWork Application</display-name>
              
          <servlet>
                  
          <servlet-name>webwork</servlet-name>
                  
          <servlet-class>
                      com.opensymphony.webwork.dispatcher.ServletDispatcher
                  
          </servlet-class>

                  
          <load-on-startup>1</load-on-startup>
              
          </servlet>
              
          <servlet-mapping>
                  
          <servlet-name>webwork</servlet-name>
                  
          <url-pattern>*.action</url-pattern>
              
          </servlet-mapping>
              
              
          <taglib>
                  
          <taglib-uri>webwork</taglib-uri>
                  
          <taglib-location>
                      /WEB-INF/lib/webwork-2.1.7.jar
                  
          </taglib-location>
              
          </taglib>
          </web-app>

          xwork.xml位于web-inf\classes目錄下

          <!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
          "http://www.opensymphony.com/xwork/xwork-1.0.dtd"
          >


          <xwork>
              
          <!-- Include webwork defaults (from WebWork JAR). -->
              
          <include file="webwork-default.xml" />
              
              
          <!-- Configuration for the default package. -->
              
          <package name="default" extends="webwork-default">
                  
          <!-- Default interceptor stack. --> 
                  
          <default-interceptor-ref name="defaultStack" />
           
                  
                  
          <!-- Action: Lesson 03: HelloAction. -->

                  
          <action name="login" class="com.cdpgc.salary.LoginAction">
                      
          <result name="failed" type="dispatcher">login-failed.jsp</result>
                      
          <result name="success" type="dispatcher">login-success.jsp</result>
                  
          </action>
              
          </package>
          </xwork>

          LoginAction.java

           1/*
           2 * Created on 2005-8-4
           3
           *
           4
           * TODO To change the template for this generated file go to
           5
           * Window - Preferences - Java - Code Style - Code Templates
           6 */

           7package com.cdpgc.salary;
           8

           9
          import com.opensymphony.xwork.ActionSupport;
          10

          11
          /*
          12
           * @author codemyth
          13
           * 
          14
           * TODO To change the template for this generated type comment go to Window -
          15
           * Preferences - Java - Code Style - Code Templates
          16 */

          17public class LoginAction extends ActionSupport {
          18

          19
              String user;
          20
              String password;
          21

          22    
          /*
          23     * (non-Javadoc)
          24
               * 
          25
               * @see com.opensymphony.xwork.Action#execute()
          26     */

          27    public String execute() throws Exception {
          28        // TODO verify user-password

          29        if (user.equals("bbb"))
          30            return
           super.SUCCESS;
          31        else

          32            return "failed";
          33    }

          34    /**
          35
               * @return Returns the user.
          36     */

          37    public String getUser() {
          38        return
           user;
          39    }
           
          40    
          /**
          41
               * @param user
          42
               *            The user to set.
          43     */

          44    public void setUser(String user) {
          45        this.user =
           user;
          46    }

          47    /**
          48
               * @return Returns the password.
          49     */

          50    public String getPassword() {
          51        return
           password;
          52    }

          53    /**
          54
               * @param password
          55
               *            The password to set.
          56     */

          57    public void setPassword(String password) {
          58        this.password =
           password;
          59    }

          60}

          61

          6.發布代碼
             我們可以直接制定tomcat到開發環境中讀取,在${tomcat_home}\conf\catalina\localhost   目錄新建一個文件example.xml,包含以下內容

          <Context path="/salary" docBase="D:/tools/Develop/ide/eclipse-SDK-3.0.2-win32/eclipse/workspace/salary/webroot" unpackWAR="True" /> 

          這是一個tomcat支持的xml片斷 Fragment,它的名稱無所謂,tomcat會讀取它并將該docbase指定的目錄作為名叫salary的虛擬目錄.

          整個過程是這樣的
          1.login.jsp中點擊submit按紐后,請求將被發送到web容器的login.action,
          2.web容器檢索web.xml,通過

          <servlet-mapping>
                  
          <servlet-name>webwork</servlet-name>
                  
          <url-pattern>*.action</url-pattern>
              
          </servlet-mapping>

          這一段得到webwork關鍵字,再通過

              <servlet>
                  
          <servlet-name>webwork</servlet-name>
                  
          <servlet-class>
                      com.opensymphony.webwork.dispatcher.ServletDispatcher
                  
          </servlet-class>

                  
          <load-on-startup>1</load-on-startup>
              
          </servlet>

          將請求轉發給com.opensymphony.webwork.dispatcher.ServletDispatcher類來處理,這個類會讀取xwork.xml文件
          3.通過和最初login.jsp提交的"login.action"中去掉web.xml中的定義的".action", 得到"login",在xwork.xml中的

                  <action name="login" class="com.cdpgc.salary.LoginAction">
                      
          <result name="failed" type="dispatcher">login-failed.jsp</result>
                      
          <result name="success" type="dispatcher">login-success.jsp</result>
                  
          </action>

          找到"login"的定義,并尋找com.cdpgc.salary.LoginAction來處理這個請求,當該對象的execute()方法返回
          <result>節點"name"屬性定義的字符串的時候,將結果使用某個jsp來響應.這里是
          success->login-success.jsp
          failed->login-failed.jsp
          4.兩個jsp中使用了

          <ww:property value="user" />

          來訪問處理類(com.cdpgc.salary.LoginAction)的屬性,它依賴于

          <%@ taglib uri="webwork" prefix="ww" %>

          定義的標簽庫,而這個標簽庫定義中的uri依賴于web.xml中的

              <taglib>
                  
          <taglib-uri>webwork</taglib-uri>
                  
          <taglib-location>
                      /WEB-INF/lib/webwork-2.1.7.jar
                  
          </taglib-location>
              
          </taglib>

          定義的taglib-uri名稱


          另外,在LoginAction.java中webwork會將發出請求的form中的值--------在<input type='xxx' name='xxx'>中的值
          填入到自己的屬性中(如果有同名屬性的化),這樣我們可以獲得請求參數.在處理完畢后,同樣可以設置它,
          而在結果jsp中,webwork又會將該值提供給jsp訪問,當然還是基于名稱相同.

          在整個過程中,我沒有使用eclipseWork插件的任何功能,原因是---------我不會用,曾經在項目屬性中設置過xwork.xml是哪個xml,但是現在設置不了了,不知道為什么,并且也不知道如何提高開發效率,希望有人能幫幫我.謝謝.




                   

          posted on 2005-08-06 08:15 一竿殘照.金棣 @ blogJava.net 閱讀(2181) 評論(3)  編輯  收藏 所屬分類: webworktomcat

          Feedback

          # re: tomcat+webwok學習筆記.配置篇 2005-08-08 00:10 一竿殘照.金棣 @ blogJava.net
          碰到這樣的異常
          Unable to initialize TldLocationsCache: null
          并且刷新頁面有時候正常,有時候不正常,看來應該tld緩存造成某些時候正常的現象


          原因是在jsp頁面中使用了標簽庫,而web容器未找到指定的標簽庫

          將tld文件或jar文件部署到web.xml中指定的位置后,問題解決,
            回復  更多評論
            

          # re: tomcat+webwok學習筆記.配置篇 2005-08-12 09:51 ken
          偶只使用過eclips 里面的vss插件,hoho
            回復  更多評論
            

          # re: tomcat+webwok學習筆記.配置篇[未登錄] 2008-11-11 10:23 redcoatjk
          @一竿殘照.金棣 @ blogJava.net
          說的不錯..  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 麻阳| 和林格尔县| 长宁区| 上饶市| 巴里| 澄迈县| 西和县| 河北省| 台湾省| 磴口县| 疏勒县| 碌曲县| 清丰县| 泰宁县| 和静县| 珠海市| 平陆县| 璧山县| 奈曼旗| 咸阳市| 满洲里市| 甘孜| 正镶白旗| 鲁甸县| 乐亭县| 上林县| 库尔勒市| 澄江县| 休宁县| 吴川市| 洛隆县| 沙田区| 锡林郭勒盟| 安福县| 长顺县| 密山市| 务川| 惠水县| 威海市| 嵊泗县| 义乌市|