AppFuse1.7 Tutorial 之 创建StrutsAction 和 JSP (3)

<script type="text/javascript"> <!-- google_ad_client = "pub-2016433482135581"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel =""; google_color_border = "336699"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--> </script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>

创建Struts Action 和 JSP,主要步骤
[1] Add XDoclet Tags to Person to generate PersonForm
[2] Create skeleton JSPs using XDoclet
[3] Create PersonActionTest to test PersonAction
[4] Create PersonAction
[5] Run PersonActionTest
[6] Clean up the JSP to make it presentable
[7] Create Canoo WebTests to test browser-like actions

· [1] 为Person添加XDoclet Tags来产生PersonForm
 在Person.java里面添加XDoclet的标签
 @struts.form.include-all="true" extends="BaseForm"
 ant compile
 
· [2] 使用XDoclet 来创建JSP的skeleton(骨架)
 在“开始” -> “运行” 里面输入 CMD
 进入到你项目的path/extras/viewgen
 ant -Dform.name="PersonName" (会产生PersonForm.properties、PersonForm.jsp 、PersonFormList.jsp)
 COPY PersonForm.properties 到 web/WEB-INF/class/ApplicationResources_en.properties
 
 
· [3] 创建测试PersonAction 的PersonActionTest
 做到这里了,我确实对测试没有好感,实在太麻烦了。~~~~~~~~又这个命令那个text.
 唉~~~不过专家说好。忽然想起Eason(陈奕迅)的《专家话》这首歌~~~
 
 * 专家的建议 早餐不要悭
 一天里面最重要是这个简单习惯
 专家的建议 呼吸请你小心
 避免吸错了空气的炭 无时和无地

 * 十万样做法像是对 但错我也不知
 实在没办法辨别每样看法与构思
 有专家会蚀言 一些却未能辨
 谁是对 或会准 或有偏差 有商确异见 *
 ..........
 
 早餐不能不吃,专家的话不能不听~~~~程序员还是要写得~~~~¥%…※%×※ 省略几个粗口

 1 .在test/web/**/action 目录中创建PersonActionTest.java
    专家建议:复制→另存为一个已经有的ActionTest (i.e. UserActionTest) 用[P]erson覆盖 [Uu]se。
 2 .在src/dao/**/Constants.java中添加一个变量PERSON_KEY. 名字"personForm"要和struts-config.xml
    中配置的form名字一样.
 /**
      * The request scope attribute that holds the person form.
      */
     public static final String PERSON_KEY = "personForm";

 如果运行这个测试会有一些错误,因为你还没有创建Action

· [4] 创建PersonAction
 创建PersonAction很容易,里面不外乎就是定义一些方法,然后依据 log , message , formbean ,forward 一步一步
 没有悬念。
 1.在Javadoc 里面定义xdoclet(struts.action)的信息
 2.extends BaseAction
 3.Create需要的方法 cancel()、delete()、edit()、save()
 
 说明:
 convert是转换一个PersonForm或者Person对象,互换。它内部调用ConvertUtil.convert()方法,
 并使用BeanUtils.copyProperties 将进行如下转换:POJO → ActionForm,将ActionForm → POJO。

· [5] 运行PersonActionTest
 添加示例数据文件(metadata/sql/sample-data.xml)用于测试ActionTest
 如果这个表和其他的表用外键/触发器关联,则必须注意表创建的顺序和数据添加的顺序
 <table name='person'>
     <column>id</column>
     <column>first_name</column>
     <column>last_name</column>
     <row>
       <value>1</value>
       <value>Matt</value>
       <value>Raible</value>
     </row>
     <row>
       <value>2</value>
       <value>James</value>
       <value>Davidson</value>
     </row>
 </table>
 
 运行:ant test-web -Dtestcase=PersonAction


· [6] 清理JSP,使它合乎要求 [make it presentable]
 把没有用的字段去掉,如id
 
 现在执行ant db-load deploy, 然后启动Tomcat,最后打开浏览器,
 输入 http://localhost:8080/appfuse/editPerson.html?id=1 , 你就能看到界面:
 
 注意:如果你改变了web目录下的任何文件,要使用deploy-web target.
 否则,使用deploy 编译并部署,我之前就是没有看到这个说明,怎么搞都不行,
 很郁闷,根据以前开发EJB的经验,自己delopy一下,就可以了。
 


· [7] 创建测试Action的Canoo WebTest[可以像浏览器一样测试Action]
 省略......偶不喜欢这种JSP的测试方式,就是这样测试了,我还要在JSP上再测试一次
 麻烦~~~
 

name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-2016433482135581&dt=1114794340476&format=728x90_as&output=html&color_bg=FFFFFF&color_text=000000&color_link=0000FF&color_url=008000&color_border=336699&ad_type=text_image&u_h=768&u_w=1024&u_ah=740&u_aw=1024&u_cd=32&u_tz=480&u_his=11&u_java=true" frameborder="0" width="728" scrolling="no" height="90" allowtransparency="65535">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值