十一天SSH项目快速实战课程(第3天)

1 项目介绍

1.1 项目背景

国税协同办公平台包括了行政管理、后勤服务、在线学习、纳税服务、我的空间等几个子系统;我们本次主要的开发功能是纳税服务子系统的部分模块和基于纳税服务子系统信息的个人工作台首页。纳税服务子系统是办税PC前端或移动端的后台管理系统,主要包括的功能有系统角色管理、用户管理、信息发布管理、投诉受理、纳税咨询、易告知、服务预约、服务调查等模块。

十一天SSH项目快速实战课程(第3天)

十一天SSH项目快速实战课程(第3天)

————————————————————————————

此处上接实战第二天课程内容

4 抽取BaseAction

在action中继承了ActionSupport和其它一些公共属性,如selectedRow等;可能以后还会产生更多公共的内容,所以应该把这些共有的抽取出来,放入到一个基本action中,我们命名为BaseAction,让它去继承ActionSupport和其它公共属性,其它的action只要继承它就可以了。

5 系统异常处理

当在页面中发送了请求,请求被系统处理时出现错误时,如果没有特别处理在请求过程中出现的异常信息时,那么返回给用户的则是后台的异常信息页面;为避免直接将这报错的页面呈现给用户,可对这报错进行处理。

5.1 分层异常

在本系统中的后台处理有分3个层,分别是action、service和dao层,每个层次都有可能出现相应错误。① Action层可能出现解析请求参数、返回结果有问题;② Service 层则可能出现请求中要做的业务操作出现问题;出现了问题要根据实际情况判断是否会影响本次操作结果,action中要根据异常信息进行判断然后确定是否操作成功;③ dao层也可能出现在操作数据库时出现错误;而此种错误一般都是致命的会影响操作结果。以此;在3个层次中至少要有两种类型的异常信息来标识。

制定总的系统异常类:

十一天SSH项目快速实战课程(第3天)

Action层异常类:

十一天SSH项目快速实战课程(第3天)

Service层异常类:

十一天SSH项目快速实战课程(第3天)

5.2 异常处理

5.2.1 全局异常映射

在struts总配置文件(struts.xml)中配置一个包括 全局异常映射和全局结果的package,然后让其它所有的业务模块的struts配置文件(*-struts.xml)继承后便可处理由后台抛出的特定异常并处理。

在总配置文件struts.xml中:

十一天SSH项目快速实战课程(第3天)

在子业务模块中的*-sturts.xml中继承总配置文件中的package:

十一天SSH项目快速实战课程(第3天)

在具体的后台处理代码中抛出系统异常:

十一天SSH项目快速实战课程(第3天)

如果在action中只抛出了ActionException,那么非此异常出现时,如果在全局异常映射中配置了java.lang.Exception 异常类的映射,同样可以捕获。

5.2.2 制定返回类型(StrutsResultSupport)

在有特殊情况时;如果没有异常信息,但是有错误并且有错误信息等内容;此时也需要进行友好的错误处理的话,那么可以借助StrutsResultSupport 返回结果类型来实现特定处理。此种方式先需要继承StrutsResultSupport ,然后可以在子类中获取本次请求的相关信息,再根据相关信息进行结果处理:

十一天SSH项目快速实战课程(第3天)

在struts.xml总配置文件中定义全局处理类型和全局处理结果:

十一天SSH项目快速实战课程(第3天)

6 角色管理

6.1 角色与权限说明

6.1.1 角色与权限的关系

系统中可以存在多个角色,每个角色可以自由的组合系统定义的权限集合。即角色和权限的关系是多对多的关系。为了保存这种多对多关系,需要一个角色权限表来保存。角色与角色权限的关系是一对多的关系;而权限与角色权限的关系也为一对多关系。

6.1.2 定义系统权限集

将系统中需要使用到的权限先定义出来:粗粒度的分为各个子系统的访问权限;这些权限可以定义在常量文件中。

十一天SSH项目快速实战课程(第3天)

6.2 角色管理CRUD

6.2.1 实体类及映射文件

1 Role/Role.hbml.xml

十一天SSH项目快速实战课程(第3天)

2 RolePrivilege/RolePrivilegeId,RolePrivilege.hbm.xml

十一天SSH项目快速实战课程(第3天)

十一天SSH项目快速实战课程(第3天)

6.2.2 dao、service层主要操作方法

dao中主要方法:

十一天SSH项目快速实战课程(第3天)

service中主要方法:

十一天SSH项目快速实战课程(第3天)

6.2.3 action中主要方法

十一天SSH项目快速实战课程(第3天)

十一天SSH项目快速实战课程(第3天)

6.2.4 配置文件

配置role-spring.xml及role-struts.xml,并将role-struts.xml加入到struts.xml总配置文件中。

相关新闻

联系我们
联系我们
公众号
公众号
在线咨询
分享本页
返回顶部