宽带开通系统前台
练习在开通菜单增加新的功能:熟悉struts1+hibernate3+spring3 新加菜单:bds日志查询
(1)加两个字段,一个区号,一个交换机标示
(2)仿照设备开通→基础数据→交换机与模块对应关系,做一个这个bds_log表的查询 (3)查询条件包括地市,交换机,操作描述,时间 (4)列表有增加修改删除功能。
先增加bds_log表的字段:
Id ,oper_desc(操作描述),create_date(修改时间),city_code(城市区号),switch_id(交换机标识) Serial
varchardatetime
char
char
在基础数据菜单中增加bds日志查询功能:
1.修改数据库菜单表:先在p_auth_ioms表(菜单表)添加要新的菜单。
还要在表中配置goMain方法。
2.修改struts配置文件:在项目下web/WEB-INF/config/ibms/struts-config-uoradmin.xml中修改配置文件
新增action,配置Form和Action方法的路径,以及forward方法指定的jsp文件路径
配置path地址要和菜单表中/bdsLog.do中一致
配置bean,设置form的路径。 3.写实体类以及Form: 按照数据库字段类型定义类型
Form类要继承Action Form,实体类和Form都要有get set方法 写好实体类后要写hbm.xml配置实体与数据库映射关联
将表名和字段与实体类对应。
写好hbm.xml后还需要在hibernate.cfg.xml中配置mapping
4.写DAO方法:
新建IBdsLogDao接口,继承IBaseDao接口该接口定义了很多增删改查方法
在Dao包下的hibernate包中新建逻辑处理的类BdsLogDaoHibernate类实现IbdsLogDao接口 编写表单查询条件的判断:
对城市区号,交换机标识和操作描述作为表单属性模糊查询。修改时间也进行处理后查询。
由于jsp日历插件传入的时间格式没有到时分秒,只有年月日。所以我采用between and进行查询当天日期的数据。
通过表的日历插件获取到的日期,如2016-03-15,没有时分秒,得到的date类型的时间就是3月15日的零点零分零秒。通过方法取得3月15日加一天再减一秒,获取到3月15日最后一秒的date类型时间, 用between 2016-03-15 00:00:00 and 2016-03-15 23:59:59 的方法获取到3月15日全天的数据。
写好处理类后还需要在dao_uoradmin.xml中进行bean的配置:
配置接口及处理类
5.写Action 按配置文件的路径新建bdsLogAction类,继承BaseAction 按照struts action配置的forward写转发的方法。 Action需要些IbdsLogAdmin接口,以及实现类
Admin中定义对数据库操作的抽象方法,add ,findList ,delete ,findByKey,modify方法 而实现类需要实现这些对数据库操作的方法。通过Dao实现。
实现类bdsLogAdminBean需要在配置文件中配置——uoradmin.xml中配置
goMain方法:————进入界面的方法
直接转发到goMain.jsp goQuery方法:
表单的方法,通过bdsLogManager的方法获取到数据库的所有城市区号放到集合中,然后绑定属性到request中。bdsLogManager是每次程序开始执行时将城市集合从数据库查询出方法内存中,init方法需要配置后才能执行,在sharedate-uor.xml中配置这个类。
目的是在前台jsp中作为下拉选,直接选择城市区号进行查询。最后直接跳转到query.jsp
goResult方法:根据表单查询结果方法。
直接通过Dao的方法findList查询出所有数据并通过SeionConstants.SHOWLIST绑定到seion中,然后转发到result.jsp
增删改的方法。增加直接去add.jsp中获取数据通过dao添加到数据库。
删除,是获取前台选中行数据的id,通过dao删除指定id的数据。
修改是获取选中行的id查询出数据然后将数据然后跳转到修改页面,修改后调用dao的方法修改数据库。 修改城市区号是下拉选,也需要从bdsLogManager获取cityCode集合。
6.JSP编写
GoMain.jsp
goQuery表单
Query.jsp
在form设置action,表单提交后去执行goResult Form中设置查询条件字段cityCodeswitchIdoperDesccreateDate 其中城市区号的是通过onchange的方法将request绑定的属性bdsCityList集合转换成字符串变成下拉选。 方法为:GetBdsLogById
将获取到的城市区号集合拼成下拉选字符串。 还需要在SeionConfigs.xml中配置
修改时间是使用calendar.js插件通过日历获取时间,需要添加onclick方法(getDate)
获取到的时间格式
表单提交
表单提交后查询到数据就进入goResult方法,转发到Result.jsp Result.jsp
查询的结果使用表格显示出来的,加载时执行init方法:默认选中第一个单选框
结果的表格,property需要修改
增删改按钮执行的方法
Add.jsp点击增加按钮跳转的页面
就是一个表格,每一个要设置的属性都将property设置为form的属性名 其中城市区号、操作描述、和交换机标识都是通过文本框的值获取, 修改时间是通过获取当前时间的值转换为指定格式插入到数据库。
删除的方法:
从选中的行获得改行的id 通过action的delete方法从form中获取bdsLogForm实体然后通过实体的id删除该条数据
修改的方法:
点击修改按钮后执行goMod方法,将选中行作为form交给action处理
执行action的goModfiy方法,通过传选中的form的ID通过findByKey方法查询出数据转换为besLog实体,通过BeanUtils.copyProperties方法将bdslogForm和bdslog实体关联。然后跳转到goModiyf的jsp页面。
转发到jsp页面,修改的jsp页面会把选中的form信息设置在文本框中。 其他的和add.jsp一样.点击修改按钮action就执行修改方法修改数据库
完成对bds_log表的查询已经增删改方法。