従業員管理の改善
(1)ページを照会するときにパスワードを削除します
1.上記で作成したプロジェクトのemp.htmlページにアクセスします
パスワードが公開されている
表示時にパスワードの表示をブロックする必要があります
2.Emp.javaのerp_entityにコメントを設定します
3.再度アクセスすると、ログインパスワードが消えます
emp.htmlのパスワード列を削除して、
もう一度アクセスしてください
(2)性別の表示
emp.htmlの性別列を変更し
、emp.htmlページに再度アクセスします
(3)日付のフォーマット
1.クエリを実行すると、この表示が明らかに間違っています。
2.日付をフォーマットし、date.jsを導入します
// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子:
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
Date.prototype.Format = function(fmt)
{
//author: meizz
if(isNaN(this.getDate()))
{
return "";
}
var o = {
"M+" : this.getMonth()+1, //月份
"d+" : this.getDate(), //日
"h+" : this.getHours(), //小时
"m+" : this.getMinutes(), //分
"s+" : this.getSeconds(), //秒
"q+" : Math.floor((this.getMonth()+3)/3), //季度
"S" : this.getMilliseconds() //毫秒
};
if(/(y+)/.test(fmt))
fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)
if(new RegExp("("+ k +")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
return fmt;
}
3. emp.htmlにjsを導入します(上記のJSを対応するuiファイルに入れます)
(4)部門名の改善
1.emp.hbm.xmlのマッピングファイルを変更します
2. Emp、javaエンティティクラスを変更します
3. emp.htmlページのコンテンツを変更します(部門にフォーマッターを追加します)
4.BaseActionのlistByPageメソッドとlistメソッドを変更します。DisableCircularReferenceDetect禁用循环引用保护
5. emp.htmlに再度アクセスします:実装
(5)従業員のフォーム編集の追加
1.crud.jsで編集ボックスのサイズを設定します
2. emp.htmlで(新しいボタンを編集するためのテキストボックスを設定します)
性別をラジオボタンに変更
3. emp.htmlの追加ページで対応する追加機能を設定します(対応する日付形式を設定します)
<td>出生年月日</td>
<td>
<input name="t.birthday" class="easyui-datebox" editable="false" >
</td>
4.部門ドロップダウンリストの設定(emp.htmlで設定)
empの外部キーに対応する部門から部門リストを取得します
<td>部门</td><td><input name="t.dep.uuid" class="easyui-combobox" data-options="
url:'dep_list',textField:'name',valueField:'uuid' " >
</td>
5.その他の属性を設定します(検証を追加します)
(1)emp.htmlに対応する(検証済みの属性)を設定します
<td>登陆名</td>
<td><input name="t.username" class="easyui-validatebox" data-options="
required:true,missingMessage:'登录名不能为空!' ">
</td>
<td>邮件地址</td>
<td><input name="t.email" class="easyui-validatebox" data-options="
required:true,validType:'email',invalidMessage:'Email格式不正确'">
</td>
(2)crud.jsに対応する(検証済みの属性)を設定して、[保存]をクリックしたときに確認します。
エラーは送信できません。
//表单验证的时候当所有字段返回true的时候,该方法使用validatebox(验证框架)插件
var isValid = $('#editForm').form('validate');
if(isValid == false ){
return;
}
var formdata= $('#editForm').serializeJSON();
$.ajax({
url:name+'_'+method+'.action',
data:formdata,
dataType:'json',
type:'post',
success:function(value){
if(value.success){
$('#editWindow').window('close');
$('#grid').datagrid('reload');
}
$.messager.alert('提示',value.message);
}
});
(3)部門が必要ですrequired:true
6.従業員検索(通常の形式)
(1)emp.htmlで性別を変更します
(2)対応する部門のドロップダウンリストを
設定します(3)EmpDaoの部門に従ってクエリ条件を設定します
// 根据部门查询
if (null != emp1.getDep() && null != emp1.getDep().getUuid()) {
dc.add(Restrictions.eq("dep", emp1.getDep()));
}
(4)条件クエリが成功しました
7.指定された期間の情報を照会するための従業員検索(生年月日)
(1)フロントエンドemp.htmlの日付を変更します
出生年月日:<input name="t1.birthday" class="easyui-datebox" editable="false" >
-> <input name="t2.birthday" class="easyui-datebox" editable="false" >
(2)バックエンドEmpDapの条件を変更します
(3)クエリは成功します
(6)部門関連のフォーマット処理
1.クリックして変更するとエラーが報告されます(ログイン名、本名、性別、日付形式のエラーはありません)
BaseActionのgetメソッドを変更
します。ページにはさまざまな情報が正常に表示されますが、部門には表示されません。
2.部門情報を表示します(BaseActionのmapJsonメソッドを変更します)
private String mapJson(String jsonString, String prefix) {
Map<String, Object> map = JSON.parseObject(jsonString);
Map<String, Object> newmap = new HashMap();
for (String key : map.keySet()) {
if (map.get(key) instanceof Map) {
// 判断左边的类型是否和右边相同
// key值进行拼接
Map<String, Object> m2 = (Map<String, Object>) map.get(key);//将map.get(key)值强制转换为map
for (String key2 : m2.keySet()) {
newmap.put(prefix + "." + key + "." + key2, m2.get(key2));
}
}else {
newmap.put(prefix + "." + key, map.get(key));
}
}
return JSON.toJSONString(newmap);
}
再度実行すると、対応する部門が自動的に選択されます