数据字典

如此展示:


数据库:


jsp:

dictionaryIndex.jsp:

<%@ page language="java"  pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<HTML>
<HEAD>
<title>系统设置</title>
<LINK href="/page/system/Style.css" type="text/css" rel="stylesheet">
<script language="javascript" src="/page/system/function.js"></script>
<script type="text/javascript" src="/page/system/pub.js"></script>
<script type="text/javascript"  src="/js/jquery-3.3.1.js"></script>
<script>  
        var ctx = "${ctx}";  
    </script>
<script language="javascript">



function changetype(){
 /**没有选择类型列表的值,显示类型名称的文本框,作用是:此时表示的业务逻辑是在【保存】的时候,新增一种数据类型*/
 if(document.Form1.keyword.value=="jerrynew"){
  var textStr="<input type=\"text\" name=\"keywordname\" maxlength=\"50\" size=\"24\"> ";
    document.getElementById("newtypename").innerHTML="类型名称:";
    document.getElementById("newddlText").innerHTML=textStr;
    
    
    Pub.submitActionWithForm('Form2','/dictionary/dictionaryEdit','Form1');
   
 }
 /**选择类型列表的值,隐藏类型名称的文本框,作用是:此时表示的业务逻辑是在【保存】的时候,在已有的数据类型的基础上进行修改和编辑*/
 else{
   
   var textStr="";
   document.getElementById("newtypename").innerHTML="";
   document.getElementById("newddlText").innerHTML=textStr;
   Pub.submitActionWithForm('Form2','/dictionary/dictionaryEdit','Form1');
 }  
  }
  
     function saveDict(){
     /**没有选择数据类型,保存:新增一种新的数据类型*/
     if(document.Form1.keyword.value=="jerrynew"){
         if(Trim(document.Form1.keywordname.value)==""){
            alert("请输入类型名称");
            return false;
         }
         
        var allkeywords= document.Form1.keyword;
        for(var i=0;i<allkeywords.length;i++){
   
           if(allkeywords[i].value==Trim(document.Form1.keywordname.value)){           


              alert("已存在此类型名称,请重新输入");
              return false;
            }
            
        }
        
         document.Form2.keywordname.value=document.Form1.keywordname.value;
         document.Form2.typeflag.value="new";
         
     }
     /**选择数据类型,保存:在已有数据类型的基础上进行修改和编辑*/
     else{
     
         document.Form2.keywordname.value=document.Form1.keyword.value;
         document.Form2.typeflag.value="add";
     }
     var tbl=document.getElementById("dictTbl");
     for (i=1;i<tbl.rows.length;i++){   
    var name = tbl.rows[i].cells[1].getElementsByTagName("input")[0].value;
    if(Trim(name)==""){
       alert("名称不能为空!");
       
       return false;
       }
   }
   for(k=1;k<=tbl.rows.length-2;k++)
 {
  for(m=k+1;m<=tbl.rows.length-1;m++)
  {     
    var name1 = tbl.rows[k].cells[1].getElementsByTagName("input")[0].value;
    var name2 = tbl.rows[m].cells[1].getElementsByTagName("input")[0].value;
    if(name1 == name2){
    alert("名称不能相同!"); 
    return false;
       }
   }
 }
     document.Form2.action="/dictionary/saveDictionary";
     document.Form2.submit();     
}    
  
     
     
     
       


function insertRows(){ 
//获取表格对象
var tb1 = $("#dictTbl");
var tempRow = $("#dictTbl tr").length;//获取表格的行数
var $tdNum = $("<td align='center'></td>");
$tdNum.html(tempRow);

var $tdName = $("<td align='center'></td>");
$tdName.html("<input name=\"itemname\" type=\"text\" id=\""+tempRow+"\" size=\"45\" maxlength=25>");

var $tdDel = $("<td align='center'></td>");
$tdDel.html("<a href='javascript:delTableRow(\""+tempRow+"\")'>删除</a>");


// 创建tr,将3个td放置到tr中
var $tr = $("<tr></tr>");
$tr.append($tdNum);
$tr.append($tdName);
$tr.append($tdDel);
//在表格的最后追加新增的tr
tb1.append($tr);



 
 
function delTableRow(rowNum){ 

   //改变行号和删除的行号
   var tb1 = $("#dictTbl");
   var tempRow = $("#dictTbl tr").length;//获取表格的行数
   if (tempRow >rowNum){     
 //获取删除行的id指定的对象,例如:<input name=\"itemname\" type=\"text\" id=\""+tempRow+"\" size=\"45\" maxlength=25>
 $("#"+rowNum).parent().parent().remove();
 //加1表示寻找下一个id,目的是将后面tr的格式向上移动
      for (i=(parseInt(rowNum)+1);i<tempRow;i++){
     //将i-1的值赋值给编号
     $("#"+i).parent().prev().html(i-1);
     //将i-1的值赋值给超链接的删除
     $("#"+i).parent().next().html("<a href='javascript:delTableRow(\""+(i-1)+"\")'>删除</a>");//
     //将i-1的值赋值给文本框的id,用于删除
     $("#"+i).attr("id",(i-1));//将id设置成i-1
      }
   }



function returnMethod(){
return saveDict();
}
    
</script>
 </HEAD>

<body>
<Form name="Form1" id="Form1"  method="post" style="margin:0px;">
<table cellSpacing="1" cellPadding="0" width="90%" align="center" bgColor="#f5fafe" border="0">
<TBODY>
<tr>
<td class="ta_01" colspan=3 align="center" style="background:../../../images/b-info.gif">
<font face="宋体" size="2"><strong>数据字典维护</strong></font>
</td>
</tr>
<TR height=10><td colspan=3></td></TR>
<tr>
<td class="ta_01" align="right" width="35%" >类型列表:</td>
<td class="ta_01" align="left"  width="30%" >
<select name="keyword" class="bg" style="width:66%" οnchange="changetype()">
<option value="jerrynew"></option>
<c:forEach items="${DDlList }"  var="ddl">
<option value="${ddl.keyword}">${ddl.keyword}</option>
</c:forEach>
 
 
</select>
</td>

<td class="ta_01"  align="right" width="35%" >    
   </td>  
</tr>



   <tr>
      <td class="ta_01" align="right" width="35%" id="newtypename">类型名称:</td>
  <td class="ta_01"  align="left" width="30%"  height=20 id="newddlText">
   <input type="text" name="keywordname" maxlength="25" size=24>
  </td>
  <td class="ta_01"  align="right" width="35%" ></td>
</tr>


<TR height=10><td colspan=3 align="right">
  <input type="button" name="saveitem" value="添加选项" style="font-size:12px; color:black; height=20;width=80" onClick="insertRows()">
</td></TR>   
</TBODY>
</table>
</Form>

 <Form name="Form2" id="Form2"  method="post" style="margin:0px;">
    <table cellSpacing="1" cellPadding="0" width="90%" align="center" bgColor="#f5fafe" border="0" >
    <tr>
     <td >
  <table cellspacing="0"   cellpadding="1" rules="all" bordercolor="gray" border="1" id="dictTbl"
   style="BORDER-RIGHT:gray 1px solid; BORDER-TOP:gray 1px solid; BORDER-LEFT:gray 1px solid; WIDTH:100%; WORD-BREAK:break-all; BORDER-BOTTOM:gray 1px solid; BORDER-COLLAPSE:collapse; BACKGROUND-COLOR:#f5fafe; WORD-WRAP:break-word">



<tr style="FONT-WEIGHT:bold;FONT-SIZE:12pt;HEIGHT:25px;BACKGROUND-COLOR:#afd1f3">
<td class="ta_01" align="center"  width="20%" height=22 style="background:../../../images/tablehead.jpg">编号</td>
<td class="ta_01" align="center"  width="60%" height=22 style="background:../../../images/tablehead.jpg">名称</td>
<td class="ta_01" align="center"  width="20%" height=22 style="background:../../../images/tablehead.jpg">删除</td>
</tr>
   
  
    <tr>
  <td class="ta_01" align="center"  width="20%">1</td>
  <td class="ta_01" align="center"  width="60%">
  <input name="itemname" type="text"  size="45" maxlength="25"></td>
  <td class="ta_01" align="center"  width="20%"></td>
</tr>
    </table>
  </td>
</tr>
  <tr>
     <td >   
</td>
 </tr>
 <TR height=10><td colspan=3></td></TR>
  <tr>
     <td align="center" colspan=3>
      <tr>
    <td align="center" colspan=3>
      <input type="button" name="saveitem" value="保存" style="font-size:12px; color:black; height=20;width=50" onClick="returnMethod()">
</td>
</tr>
</td>
 </tr>
       <input type="hidden" name="keywordname" >
       <input type="hidden" name="typeflag" >
  </table>
  </Form>
  </body>
</HTML>

dictionaryEdit.jsp:

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


   <table cellSpacing="1" cellPadding="0" width="90%" align="center" bgColor="#f5fafe" border="0" >
    <tr>
     <td >
  <table cellspacing="0"   cellpadding="1" rules="all" bordercolor="gray" border="1" id="dictTbl"
   style="BORDER-RIGHT:gray 1px solid; BORDER-TOP:gray 1px solid; BORDER-LEFT:gray 1px solid; WIDTH:100%; WORD-BREAK:break-all; BORDER-BOTTOM:gray 1px solid; BORDER-COLLAPSE:collapse; BACKGROUND-COLOR:#f5fafe; WORD-WRAP:break-word">

<tr style="FONT-WEIGHT:bold;FONT-SIZE:12pt;HEIGHT:25px;BACKGROUND-COLOR:#afd1f3">
<td class="ta_01" align="center"  width="20%" height=22 style="background:../../../images/tablehead.jpg">编号</td>
<td class="ta_01" align="center"  width="60%" height=22 style="background:../../../images/tablehead.jpg">名称</td>
<td class="ta_01" align="center"  width="20%" height=22 style="background:../../../images/tablehead.jpg">删除</td>
</tr>
   <c:forEach items="${ByKeywordList}" var="list">
    <tr>
  <td class="ta_01" align="center"  width="20%">${list.ddlcode }</td>
  <td class="ta_01" align="center"  width="60%">
  <input id="${list.ddlcode}" name="itemname" type="text" value="${list.ddlname }"  size="45" maxlength="25"></td>
  <td class="ta_01" align="center"  width="20%">
  <a href='javascript:delTableRow("${list.ddlcode}")'>删除</a>
 </td>
</tr>
</c:forEach>
    </table>
  </td>
</tr>
  <tr>
     <td >   
</td>
 </tr>
 <TR height=10><td colspan=3></td></TR>
  <tr>
     <td align="center" colspan=3>
       <input type="button" name="saveitem" value="保存" style="font-size:12px; color:black; height=20;width=50" onClick="saveDict()">
</td>
 </tr>
 
       <input type="hidden" name="keywordname" >
       <input type="hidden" name="typeflag" >
 
  </table>

controller:

@Controller
@RequestMapping("dictionary/")
public class DictionaryController {
@Autowired
SystemDDlService systemDDlService;
@Autowired
EnergySystemddlMapper energySystemddlMapper;
@RequestMapping("dictionaryIndex")
public String todictionaryIndex(ModelMap model){
EnergySystemddl energySystemddl = new EnergySystemddl();
List<EnergySystemddl> list = energySystemddlMapper.getIsDistinctKeyword(energySystemddl);
model.addAttribute("DDlList", list);
return "page/system/dictionaryIndex";
}

@RequestMapping("dictionaryEdit")
public String toDictionaryEdit(String keyword,ModelMap model){
EnergySystemddlExample example = new EnergySystemddlExample();
Criteria criteria = example.createCriteria();
criteria.andKeywordEqualTo(keyword);
model.addAttribute("ByKeywordList", energySystemddlMapper.selectByExample(example));
return "page/system/dictionaryEdit";

}

}

service:

@Service
@Transactional
public class SystemDDlService {
@Autowired
EnergySystemddlMapper energySystemddlMapper;
public void saveSystemDDL(EnergySystemddl energySystemddl) {
// 1:获取页面保存的3个参数的值
// 数据类型
String keywordName = energySystemddl.getKeywordname();
// 用来判断执行的是新增一种数据类型,还是在已有数据类型的基础上进行修改和编辑(new/add)
String typeflag = energySystemddl.getTypeflag();
// 数据项的值
String[] itemname = energySystemddl.getItemname();
// 使用typeflag作为判断业务的标识
// 如果typeflag.equal("new"),此时是新增一种数据类型
if (typeflag != null && typeflag.equals("new")) {
// 遍历页面传递的数据项的值的数组,组织PO对象,执行新增的操作。
this.saveSystemDDL(itemname, keywordName);
}
// 如果typeflag.equal("add"),此时在已有的数据类型的基础上进行修改和编辑
else {
// 先使用数据类型作为条件,查询对应数据类型下的列表(List<ElecSystemDDL>),执行删除,删除List
EnergySystemddlExample example = new EnergySystemddlExample();
Criteria criteria = example.createCriteria();
criteria.andKeywordEqualTo(keywordName);
List<EnergySystemddl> list = energySystemddlMapper.selectByExample(example);
if (null != list && !list.isEmpty()) {
for (EnergySystemddl energySystemddl2 : list) {
// 删除对应数据类型的数据
energySystemddlMapper.deleteByPrimaryKey(energySystemddl2.getId());
}
}
// 遍历页面传递的数据项的值的数组,组织PO对象,执行新增的操作。
this.saveSystemDDL(itemname, keywordName);
}
}
private void saveSystemDDL(String[] itemname, String keywordName) {
if (itemname != null && itemname.length > 0) {
for (int i = 0; i < itemname.length; i++) {
EnergySystemddl energySystemddl = new EnergySystemddl();
energySystemddl.setKeyword(keywordName);
energySystemddl.setDdlcode(i + 1);
energySystemddl.setDdlname(itemname[i]);
energySystemddlMapper.insertSelective(energySystemddl);
}
}

}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值