1,设计实体/数据库
2,Dao
3,Service
4,Action
5,JSP
1,把HTML改为JSP
2,Action
3,...
=============== 实现一组功能的流程 ====================
1,了解全部功能。
2,设计实体(表)
几多对
实体 --> 表
表 --> 实体
3,分析功能到每个请求
可以写出Action中应该有几个方法,每个方法要做什么,返回什么页面
4,实现功能
1,实现Action的方法,创建出用到的Service方法。
2,实现Service方法,创建出用到的Dao方法。
3,实现Dao方法。
4,写JSP页面中的代码。
5,测试
=============== 设计实体 =================
1,有几个实体?
2,之体之间有什么关系?
3,每个实体中有什么属性
1,主键
2,关联关系属性
在类图中,关联关系是一条线,有两端,每一端应有一个表达此关联关系的属性(双向关联)。
有几个线的端指向当前类,就说明当前类中应有几个联关系属性。
3,一般的属性:所有相关的页面中,数据显示页面中要显示的或表单页面中要填写的字段。
如注册时间或名称等。
4,特殊的属性:为解决某问题而设计的属性,在遇到问题后才能设计出来。
如要显示年龄,要设计一个int age吗?不是,而是应设计一个Date birthday字段,年龄是根据当前时间与生日实时计算出来的。
============== 映射实体 ===============
1,写注释,格式为:?属性,我与?的?关系。
例如:<!-- users属性,我与User的一对多 -->
2,拷模板
多对一:
<many-to-one name="" column="" class=""></many-to-one>
一对多:
<set name="">
<key column=""></key>
<one-to-many class=""/>
</set>
多对多:
<set name="" table="">
<key column=""></key>
<many-to-many column="" class=""></many-to-many>
</set>
3,填空
name属性:属性名(在注释中)
class属性:关联的实体类型(在注释中)
<key column="..">中写的是引用当前对象表的主键的那个外键列。
如果是多对一:当前的属性名加Id后缀。
如果是多对多:当前的类名加Id后缀。
===================== 功能分析(增删改查) ========================
增删改查4个功能,共6个请求,所以在Action中需要6个方法。
作用  方法名  返回值  页面
---------------------------------------------------------------
列表  list()  list  list.jsp
删除  delete() toList  type="redirectAction" actionName="xxAction_list"
添加页面 addUI()  addUI  addUI.jsp
添加  add()  toList
修改页面 editUI() editUI  editUI.jsp
修改  edit()  toList
${name}
${#user.name}
如果使用了Struts2,则在JSP中写EL表达式时,Attribute()查的顺序为:
1,作用域
2,对象栈中的属性
3,Map中对应
的key