021 ssh综合(2)

========================

ssh综合(1) 已经实现了注册的功能,现在是登录功能

注意提交的表单数据的name是不是已经改好名了

写acton的login方法

写业务层

补充action,并且配置页面的跳转

然后还需要让登录成功的显示用户信息,登录失败的提示错误信息

#是代表使用context里的数值

引入标签库,写上错误信息标签

注册和登录系统都已经完成,现在需要完成客户管理模块

之前我们写ssh整合的时候已经写了客户模块了,其实只要拿过来即可

映射文件

写acton

写spring配置文件,记得scope要写

修改menu.jsp,并且写action的方法,配置struts.xml

这个信息来源,如果是随便填的,那么不好用来检索

所以这里需要引入数据字典的概念

数据字典其实是一张数据库的表

客户和字典有多对1的关系,其中客户是多,字典是1 

对着客户表右键,关联外键

把表拖过来就能看到关系

客户和字典映射关系的对应

创建映射文件,id的策略为uuid,不能用native,因为native是整形的,我们建表的时候用的是字符串类型

现在修改customer.class里的字段,因为是1对多的关系,多的一方需要放一的一方的对象

修改客户的配置文件

把映射文件交给spring

编写字典的action,以及service和dao

然后在页面用ajax来异步加载客户的来源,用的是jquery的ajax,要引入js


 

首先要理解字典的表

写ajax

在dictAction里写方法以及配置action,然后到这里就可以测试了

下面就可以写查询了

在action里要把数据传送回去,所以需要先转换成json,这里用的是jsonlib支持库,后面会用到fastjson

setExcludes是排除穿过去的json数据,因为我们是传一个对象,对象有很多字段,而我们只想要其中一个字段

使用write方法可以让页面那端的ajax回调函数收到

把选择项添加到上面的select里,提交是需要提交最前面的id

相应的等级和行业也可以修改


现在需要保存客户了

而我们的由于是自动封装数据的,在counstomer里面有其他对象那么就需要 其他对象.属性  所以可以写成baseDictSource.dict_id

由于我们3个都是绑定id的,所以3个都是dict_id,每个id对应不同的功能

写actino,直接保存

接下来就是查询用户,后面的currPage也可以不用,因为我们可以在后台设置默认页数

使用set方法的是属性驱动

修改下上面的代码,多添加一个 当前页显示记录数

离线查询自带了分页的效果

且需要注意,离线查询的条件是可以递增的,那么就说明,上一个使用了离线查询的人的条件还在,所以需要先清空条件

存到值栈里,也可以放到context(session,request)里

虽然在值栈里,但是request里一样有数据

修改一下list.jsp

但是测试后显示不出来字典的内容,那是因为只发送了查询客户的语句,没有发送查询字典的语句

因为使用了延迟加载,所以需要配置一下web.xml解决延迟加载

解决了延迟加载后,那么事务不会那么快关闭,就能自动去查询字典了

现在能显示数据了,还需要分页显示

因为pageBean是直接存到值栈里分布的,所以可以直接使用totalCount

修改表单提交

然后就是切换每页显示多少数据的问题

点击切换每页显示页数之后,需要重写发送请求,所以还要写一个onchange

且需要加一个 判断选中状态的,不然我们点下一页发送到服务器之后,返回回来还是3,因为服务器那边默认3

所以要选中

猜你喜欢

转载自blog.csdn.net/yzj17025693/article/details/83303235