yycg项目第三天

1. 实现国际化配置

1.1 需求:

在service代码中将给用户提示的信息硬编码了,不利于系统维护。

在这里插入图片描述

1.2 实现:

Java国际化主要通过如下3个类完成
java.util.ResourceBundle:用于加载一个资源(配置文件)
java.util.Locale:对应一个特定的国家/区域、语言环境。
java.text.MessageFormat:用于将消息格式化

//根据操作系统环境获取语言环境
		Locale locale = Locale.getDefault();
		System.out.println(locale.getCountry());//输出国家代码
		System.out.println(locale.getLanguage());//输出语言代码s
		
		//加载国际化资源(classpath下resources目录下的messages.properties,如果是中文环境会优先找messages_zh_CN.properties)
		ResourceBundle rb = ResourceBundle.getBundle("resources.messages", locale);
		String retValue = rb.getString("102");//101是messages.properties文件中的key
		System.out.println(retValue);
		
		//信息格式化,如果资源中有{}的参数则需要使用MessageFormat格式化,Object[]为传递的参数,数量根据资源文件中的{}个数决定
		String value = MessageFormat.format(retValue, new Object[]{100,200});
		System.out.println(value);

使用工具类ResourcesUtil,从资源文件中取配置信息:

不用传参取配置信息:
在这里插入图片描述

需要传参数取配置信息:
在这里插入图片描述

工具类测试:

在这里插入图片描述

1.3 本系统国际化配置

1.3.1 定义资源文件

将系统中所有的提示信息(操作成功信息、操作异常信息等)统一配置在资源文件,在java代码只需要调用工具类从资源中文件取出配置信息,避免硬编码.

在这里插入图片描述
在这里插入图片描述

1.3.2 国际化资源文件使用

使用工具类从资源文件中获取配置信息。
在这里插入图片描述

实际使用时将从资源文件中取出的配置信息填充到ResultInfo中。

提供封装类去构造ResultInfo,从资源文件中取配置信息。

在这里插入图片描述

ResultUtil提供构造ResultInfo的方法包括:
构造一个成功结果:createSuccess
构造一个失败结果:createFail

在这里插入图片描述
在这里插入图片描述
createFail方法如何使用?

将以下代码使用ResultUtil类实现.

在这里插入图片描述
封装后:
在这里插入图片描述

将下边的代码封装:
在这里插入图片描述

封装后:
使用ResultUtil类实现
在这里插入图片描述

提交结果封装:

在这里插入图片描述

1.4 系统config

将系统中配置信息统一通过静态变量配置此类中。
在这里插入图片描述

使用方法,比如:

在这里插入图片描述

2. 用户删除

2.1 需求

用户出现变更、用户不存在了,将系统用户从系统中删除。

前置条件(约束):
用户必须存在方可删除
后置条件(数据库操作)
从sysuser表删除用户信息

2.2 实现

2.2.1 dao

使用自动生成 的mapper从sysuser表删除一个用户

2.2.2 service

接口功能:将系统用户从系统中删除
接口参数:用户id
在这里插入图片描述

2.2.3 action

实现用户删除方法(提交方法)。

在这里插入图片描述

2.2.4 页面

通常情况,针对单条记录操作,建议在记录上添加链接操作。

修改queryuser.jsp:

添加删除链接
在这里插入图片描述

定义删除方法
在这里插入图片描述
在这里插入图片描述
删除操作使用ajax的form提交 ,需要在页面中定义单独 删除form,form中有一个删除用户id。
在这里插入图片描述

3 用户修改

3.1 需求 :

修改用户的信息,可以修改用户账号、用户的名称、用户密码、用户类型、用户所属单位、用户状态。

前置条件(约束):
修改用户账号不允许暂用别人的账号
用户变更单位必须是存在的

后置条件(数据库操作)
从sysuser表修改用户信息

3.2 实现 :

3.2.1 dao

使用自动生成 的mapper从sysuser表修改一个用户

3.2.2 service

接口功能:修改用户信息
接口参数:修改用户的id、修改用户的信息

约束分析:修改用户账号不允许暂用别人的账号
如果用户的账号不修改不用校验账号是否暂用别人的账号
如果用户修改账号了,才需要校验账号是否暂用别人的账号
通过修改的账号查询sysuser系统用户表,如果查询到说明暂用别人的账号

根据用户id获取用户信息:
在这里插入图片描述

3.2.3 action

两个方法:
在这里插入图片描述

3.2.4 页面

在queryuser.jsp添加修改链接。

在这里插入图片描述
在这里插入图片描述

4. 数据字典

4.1 什么是数据字典

将如下这些具有相同类型的配置项,配置到系统的数据字典表中,方便系统维护,由超级管理员统一在后台进行数据字典维护,如果用户需求要增加变更配置项,只需要修改数据字典表记录即可,不需要修改代码。

在这里插入图片描述
在这里插入图片描述

系统管理员登陆系统后台,进行数据字典维护,
在这里插入图片描述

4.2 数据字典需求

相同类型的配置项:

在系统中创建一个张记录数据字典类型:

数据字典类型表

创建一张表记录数据字典明细:
数据字典明细表
在这里插入图片描述

将上边变化灵活的配置项叫做:“普通配置项”
将上边固定的配置项(每个配置顶都有一个代码):“业务代码”

4.3 数据字典表结构

字典类型表DICTTYPE:
记录数据字典类型

字典明细表DICTINFO:
记录数据字典明细
在这里插入图片描述

字典明表中如何存储普通配置项和业务代码。

普通配置项存储:
普通配置项名称存储在DICTINFO表中info字段
普通配置项对应的类型id存储在DICTINFO表中TYPECODE

查询普通配置顶:
在这里插入图片描述

业务代码存储:
业务代码对应的名称存储在DICTINFO表中info字段
业务代码对应的类型id存储在DICTINFO表中TYPECODE
业务代码存储在DICTINFO表中DICTCODE(是和普通配置顶的区别)

业务代码查询:

在这里插入图片描述

4.4 数据字典使用

1、在页面上的下拉框中显示业务代码或普通配置
比如:在系统用户查询页面,查询条件就是用户类型,用户类型不能在jsp上硬编码,需要在action方法中取出用户类型所有配置项,在jsp页面动态遍历。

2、在查询业务表需要关联查询出业务代码对应的名称
在查询业务表时,根据业务代码,关联查询出代码对应的名称。
关联查询字典明细时指定业务代码和类型id

如何存储?
在业务表(比如系统用户表)中,对于业务代码将明细表中的dictcode字段值存储在业务表中。

在这里插入图片描述

3、在查询业务表需要关联查询出普通配置项所对应的名称
关联查询字典明细时指定明细表的主键
在这里插入图片描述
如何存储?
在业务表(比如医院表)中,对于普通配置项将明细表中的id字段值存储在业务表中。
在这里插入图片描述

4.5 小结

普通配置项:对业务数据进行简单的归类,这些归类受用户要求变化较灵活,将这些配置项作普通配置项配置数据字典表。

业务代码:系统运行所必须的,在系统设计时定义的固定代码,这些代码可能需要在程序代码进行硬编码。

4.6 数据字典在系统中应用

4.6.1 用户查询页面用户类型下拉框

用户类型:属于业务代码
获取用户类型下所有明细:
从数据字典明细表查询,根据typecode查询
在这里插入图片描述

如何实现:
定义一个service接口:
接口功能:根据字典类型查询字典明细
接口参数:typecode(字典类型id)
在这里插入图片描述
在这里插入图片描述

Action:
修改用户查询页面方法,调用systemConfigService查询用户类型信息,将用户类型列表信息传入页面。

在这里插入图片描述

页面:
将用户类型下拉框值,改成遍历groupList列表。

在这里插入图片描述

4.6.2 用户查询列表中用户类型列

Dao:
修改用户查询列表mapper,添加一列需要关联用户类型的代码查询代码对应的名称。
在这里插入图片描述

修改mapper的resultType类型,添加groupname属性。

在这里插入图片描述

页面:
修改datagrid的列定义,
在这里插入图片描述

4.6.3 普通配置项下拉框

在action中使用
在这里插入图片描述
查询出普通配置项列表,
页面中下拉框遍历list(option的value是${dictinfo.id})

<c:forEach items="${list}" var="dictinfo">
						   <option value="${dictinfo.id }">${dictinfo.info}</option>
</c:forEach>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值