posts - 165, comments - 198, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          StrutsTestCase 不需要 寫 classpath 方法 ^_^

          Posted on 2007-04-16 16:01 G_G 閱讀(682) 評論(4)  編輯  收藏 所屬分類: JUnit
          下載http://sourceforge.net/projects/strutstestcase/
          struts-config.xml
          <? xml?version = " 1.0 " ?encoding = " UTF-8 " ?>
          <! DOCTYPE?struts - config?PUBLIC? " -//Apache?Software?Foundation//DTD?Struts?Configuration?1.1//EN " ? " http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd " >

          < struts - config >
          ??
          < data - sources? />
          ??
          < form - beans? >
          ????
          < form - bean?name = " loginForm " ?type = " com.yourcompany.struts.form.LoginForm " ? />

          ??
          </ form - beans >

          ??
          < global - exceptions? />
          ??
          < global - forwards? />
          ??
          < action - mappings? >
          ????
          < action
          ??????name
          = " loginForm "
          ??????path
          = " /login "
          ??????scope
          = " request "
          ??????type
          = " com.yourcompany.struts.action.LoginAction " >
          ??????
          < forward
          ????????name
          = " ok "
          ????????path
          = " /form/suss.jsp " />
          ??????
          < forward
          ????????name
          = " error "
          ????????path
          = " /form/login.jsp " />
          ?????????
          ????
          </ action >

          ??
          </ action - mappings >

          ??
          < message - resources?parameter = " com.yourcompany.struts.ApplicationResources " ? />
          </ struts - config >
          Action
          //Created?by?MyEclipse?Struts
          //?XSL?source?(default):?platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_4.0.1/xslt/JavaClass.xsl

          package?com.yourcompany.struts.action;

          import?javax.servlet.http.HttpServletRequest;
          import?javax.servlet.http.HttpServletResponse;

          import?org.apache.struts.action.Action;
          import?org.apache.struts.action.ActionForm;
          import?org.apache.struts.action.ActionForward;
          import?org.apache.struts.action.ActionMapping;

          import?com.yourcompany.struts.form.LoginForm;
          /**?
          ?*?MyEclipse?Struts
          ?*?Creation?date:?04-16-2007
          ?*?
          ?*?XDoclet?definition:
          ?*?@struts.action?path="/login"?name="loginForm"?input="/form/login.jsp"?scope="request"?validate="true"
          ?*?@struts.action-forward?name="Myjsp"?path="/WEB-INF/"
          ?
          */
          public?class?LoginAction?extends?Action?{

          ????
          //?---------------------------------------------------------?Instance?Variables

          ????
          //?---------------------------------------------------------?Methods

          ????
          /**?
          ?????*?Method?execute
          ?????*?
          @param?mapping
          ?????*?
          @param?form
          ?????*?
          @param?request
          ?????*?
          @param?response
          ?????*?
          @return?ActionForward
          ?????
          */
          ????
          public?ActionForward?execute(
          ????????ActionMapping?mapping,
          ????????ActionForm?form,
          ????????HttpServletRequest?request,
          ????????HttpServletResponse?response)?{
          ????????LoginForm?loginForm?
          =?(LoginForm)?form;
          ????????
          ????????String?name?
          =?loginForm.getName()?;
          ????????String?pass?
          =?loginForm.getPass()?;
          ????????
          ????????
          if(name.equals(pass)){
          ?????????????
          return?mapping.findForward("login");
          ????????????}
          ?????????
          return?mapping.findForward("ok");
          ?????????
          ????}

          }


          Form
          package?com.yourcompany.struts.form;

          import?org.apache.struts.action.ActionErrors;
          import?org.apache.struts.action.ActionForm;

          public?class?LoginForm?extends?ActionForm?{
          ????
          private?String?name?;
          ????
          private?String?pass?;
          ????
          ????
          public?void?setName(String?name){
          ????????
          this.name?=?name?;
          ????}
          ????
          public?String?getName(){
          ????????
          return?this.name?;
          ????}
          ????
          public?void?setPass(String?pass){
          ????????
          this.pass?=?pass?;
          ????}
          ????
          public?String?getPass(){
          ????????
          return?this.pass?;
          ????}
          }

          關鍵的來了 ----
          package?test;

          import?java.io.File;

          import?servletunit.struts.MockStrutsTestCase;
          import?junit.framework.TestCase;
          //
          public?class?StrutsTest?extends?MockStrutsTestCase?{

          ????
          public?StrutsTest(String?testName){
          ????????
          super(testName);
          ????}
          ????
          public?void?setUp()throws?Exception{
          ????????
          super.setUp();
          ??????????File?web?
          =?new?File("E:/src/StrutsTestCase/WebRoot/");
          ????????
          this.setContextDirectory(web);
          ????????setConfigFile(
          "E:/src/StrutsTestCase/WebRoot/WEB-INF/web.xml");
          ????????setConfigFile(
          "E:/src/StrutsTestCase/WebRoot/WEB-INF/struts-config.xml");
          ?

          ????}
          ????
          ????
          public?void?testAction()?{
          ??? ???
          setRequestPathInfo("/login");
          ????????this.addRequestParameter("name","liu");
          ????????
          this.addRequestParameter("pass","123");
          ????????actionPerform();
          ????????
          this.verifyForward("ok");
          ????}
          }

          不需要 寫 classpath 哈哈

          評論

          # 有關 cactus 的   回復  更多評論   

          2007-05-15 09:40 by G_G
           
          http://www.aygfsteel.com/zhyiwww/archive/2006/06/07/51185.html

          # re: StrutsTestCase 不需要 寫 classpath 方法 ^_^  回復  更多評論   

          2007-11-08 10:16 by 李泳
          假設我是用MyEclipse開發的,
          setConfigFile("E:/src/StrutsTestCase/WebRoot/WEB-INF/web.xml");
          里面的路徑是開發時項目中的路徑還是發布之后在Tomcat中的路徑????

          # re: StrutsTestCase 不需要 寫 classpath 方法 ^_^  回復  更多評論   

          2007-11-09 17:16 by G_G
          @李泳
          不是怎么理解的你的io操作!不要寫物理路徑。
          我告訴你一種方法
          這通過Classload來加載 寫邏輯路徑 就沒有這什么考慮的了
          可以參考我blog里的介紹
          http://www.aygfsteel.com/Good-Game/archive/2007/08/09/128154.html

          中的 hbn 加載文件

          # re: StrutsTestCase 不需要 寫 classpath 方法 ^_^  回復  更多評論   

          2007-11-09 17:20 by G_G
          你可以用
          ClassLoader classLoader = Thread.currentThread().getContextClassLoader();

          new File(
          classLoader.get URL 什么方法名字不太記的了
          );

          寫邏輯名就可以如你的:
          /WebRoot/WEB-INF/web.xml
          主站蜘蛛池模板: 顺平县| 百色市| 霍林郭勒市| 宣化县| 于田县| 翁牛特旗| 景德镇市| 汕头市| 天全县| 中西区| 甘洛县| 荣成市| 万安县| 乌苏市| 二手房| 泾川县| 咸宁市| 商都县| 普兰县| 高州市| 大同市| 长沙市| 香格里拉县| 盐源县| 子洲县| 兴隆县| 临桂县| 沾益县| 廉江市| 申扎县| 蓬安县| 凉山| 潞城市| 余干县| 保康县| 太康县| 邵阳县| 台山市| 永春县| 缙云县| 安国市|