1.客户列表分析
2.pageBean封装
分别是属性和构造函数。
下面那个计算索引位置是为了计算分页而来的。
3.Action&Service开发
4.Dao层开发和spring配置
在这里的时候我犯了一个错误,就是在Serivice调用Dao的时候,要传过去下面的参数
我最后一个有点离谱,一直用的pageSize,如果一开始是没有参数的话就是null,然后传到后面的
查询函数就会一直报错,一直报乱七八糟的错误,我都找不到哪里错了,并且struts2还会返回error,
包括这个findByCriteria(dc,first,max),这样就是分页查询。
5.list.jsp配置
jQuery跳转
这是当前页面的操作(前一页,后一页,跳转页面等等)
改变下拉框就跳转
前端还蛮好玩的,就是有点麻烦,感觉写了bug也不一定看得出来。
还有就是下面这个,注意那个value一定是要写的,不然条件查询,再点击下面的下一页等操作就重新查询了。
6.封装一个baseDao
八大基本数据类型都实现了serializable,所以下面的带integer都可以用serializable来代替。
下面是BaseDaoImpl,这句话就是为了获得父类的当时运行的泛型,因为我们要用的Dao都是继承BaseDao的,获得到的就是BaseDaoImpl的。至于传过来的是数组,是因为考虑到有很多可能传几个泛型。
7.数据字典
8.ajax下拉框加载数据字典 后台
action
service
dao
9.ajax下拉框加载数据字典 前台
把js方法放到新建的里面,然后导入就好了
10.ajax下拉框加载数据字典 后台
最主要的就是CustomerAction_add方法。
service
dao
因为baseDao已经写好了,所以这里只用调用就好了。
这里说记录一个问题,就是一开始总是dao层的方法失败,就saveOrUpdate,后面debug才发现,自己的读写权限没打开,之前遇到了问题就用的注解,把applicationContext.xml里面 //掉了
就下面这东西。下次记得改
然后是取值的问题,因为这个是对象里面的值,所以还要进一步。
10.文件上传
在Action里面
务必要加上set/get方法,不然是null。
11.用户修改
在这里设计的是保存和修改都用的add.jsp ,不过保存会回显自己的数据并且把cust_id传过来
所以只要判断域中是否有customer对象就好了
除了ID都有地方回显,所以要搞一个隐藏的接收参数。
这是那三个数据字典的回显,如果有些地方没有的话,就会多一个“,”出来 所以要判断一下
12.添加联系人后台
这和前面的差不多吧,就是有几个前台的地方要注意一下。
看这个保存界面,就只有一个保存的,很简单。有一点难度的就是选择所属客户的哪里。因为这里是多对一的关系,一个客户有很多个联系人。
这里解决方案是通过打开Customer_list来选择。
这个选择是通过判断有没有参数来进行的。
点击按钮的时候传过去一个select
关于下面这个函数,记录一下,就是得到它的父窗口,就是谁打开了这个窗口,然后把参数传过去。很简单的事情。
还有如果传递参数的时候,如果是String的话,一定要加 ‘ ‘ ,如上图的onclick那里,传过来的name是String的,id是long的。如果不写对的话,前天显示就一直不会成功。
13.联系人列表
这个东西有点搞的,花了点时间,理论上和前面的用户列表是一样的,就是表单提交的时候,有点问题,最开始我直接不知道是怎么弄的,struts2会返回一个 return input (怎么查看错误信息放到小知识里面去了)
反正就是表单要弄仔细一点,如果进不去action的话,就肯定是前后端传递有问题。
这里有一个选择客户的按钮,就是要把客户名字传到前台,然后查询的时候把选择的客户ID传到后台
就是下面这句,如果没选择就是空的,如果有就进行查询,虽然我跳过了criteria那节,但是我现在都看得懂了……
在linkMan里面查询
最后有一个小bug
因为加了筛选条件后,第二页就显示不了,因为会初始化Customer,它并不为空了
所以我们要加一个custid也不为空
Long才能返回null long 不行
这傻逼前台,视频里面 ==’1’ 要加引号,我改了好久,就是进不去,原来不要加,我都不知道怎么回事,难顶。