a、在查询页面不返回密码字段,防止密码破解
1、1在显示字段中去掉password字段,(尽管没有显示出来,但可以利用浏览器的开发者工具查看返回的json数据得到密码。)
var columns=[[
{field:'uuid',title:'编号',width:100},
{field:'username',title:'登陆名',width:100},
//这里去掉密码字段
{field:'name',title:'真实姓名',width:100},
1、2在员工类中的密码属性上注入@JSONField(serialize=false),表示对该字段不进行json转换
private String username;//登陆名
//不转换json字符串
@JSONField(serialize=false)
private String pwd;//登陆密码
private String name;//真实姓名
b、性别显示(将字段中读出的1和0显示为男和女):利用formater格式化代码
{field:'gender',title:'性别',width:100,formatter:function(value, row, index){
value = row.gender;
if(1 == value * 1){
return '男';
}
if(0 == value * 1){
return '女';
}
}},
c、将日期格式化为yyyy-mm-dd样式:引入date.js文件并添加格式化器
{field:'birthday',title:'出生年月日',width:100,formatter:function(value){
return new Date(value).Format("yyyy-MM-dd");
}},
d、部门的正常显示:由于部门是另一张表中的数据,与员工是一对多的关系,所以应该在多的关系映射文件中进行多对一的配置,
<many-to-one name="dep" class="cn.itcast.erp.entity.Dep" column="depuuid"></many-to-one>
然后修改员工的实体类,将dep.uid换成dep
private Dep dep;//部门
public Dep getDep() {
return dep;
}
public void setDep(Dep dep) {
this.dep = dep;
}
在需要显示部门的地方给部门加上格式化器
{field:'dep',title:'部门编号',width:100,formatter:function(value){
return value.name;
}},
由于采用的jar包是fastjson,默认对出现的名称只显示一次,fastJSON使用循环引用,要禁用它
//DisableCircularReferenceDetect禁用循环引用保护
String listString = JSON.toJSONString(mapData, SerializerFeature.DisableCircularReferenceDetect);
e、编辑性别单选按钮
性别:<input name="t1.gender" type="radio" value="">全部
<input name="t1.gender" type="radio" value="0">女
<input name="t1.gender" type="radio" value="1">男
<br />
f、编辑出生年月日(采用easyUI的样式)
出生年月日:<input name="t1.birthday" class="easyui-datebox"> 到 <input name="t2.birthday" class="easyui-datebox">
g、下拉列表的实现(部门)url:查询地址;textfield:显示的名称;valuefield:实际传入后台的名称
部门:<input name="t1.dep.uuid" class="easyui-combobox" data-options="
url:'dep_list', textField:'name', valueField:'uuid'
">
h、数据校验(前端验证)
1、不能为空
<td>登陆名</td><td><input name="t.username" class="easyui-validatebox" data-options="
required:true,missingMessage:'登陆名不能为空!'
">
</td>
2、邮件格式
<td>邮件地址</td><td><input name="t.email" class="easyui-validatebox" data-options="
required:true,validType:'email',invalidMessage:'Email格式不正确'
"> </td>
3、必填项(required=true)
<td>部门</td><td><input name="t.dep.uuid" class="easyui-combobox" data-options="
url:'dep_list', textField:'name', valueField:'uuid',required:true
"> </td>
4、当所有字段都验证完成后才能提交(在crud.js中):
//点击保存按钮
$('#btnSave').bind('click',function(){
//做表单字段验证,当所有字段都有效的时候返回true。该方法使用validatebox(验证框)插件。
var isValid = $('#editForm').form('validate');
if(isValid == false){
return;
}
var formData = $('#editForm').serializeJSON();
$.ajax({
url: name + '_' + method + saveParam,
data: formData,
dataType: 'json',
type: 'post',
success:function(rtn){
$.messager.alert("提示",rtn.message,'info',function(){
//成功的话,我们要关闭窗口
$('#editDlg').dialog('close');
//刷新表格数据
$('#grid').datagrid('reload');
});
}
});
});