为了解决重复的工作:entity、dao、web、mvc.xml、页面
变化部分:不同的表不同字段
使用到的技术:bootstrap
有兴趣的同学可以拿走学习一下,需要修改其中的代码,改为自己需要的
效果图:

DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ=="
crossorigin="anonymous" referrerpolicy="no-referrer">script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/4.6.1/css/bootstrap.min.css" integrity="sha512-T584yQ/tdRR5QwOpfvDfVQUidzfgc2339Lc8uBDtcp/wYu80d7jwBgAxbyMh0a9YM9F8N3tdErpFI8iaGx6x5g=="
crossorigin="anonymous" referrerpolicy="no-referrer" />
<title>前端控制器title>
<script>
$(function() {
})
function add(node){
var tr = ' ';
$(node).parent().parent().parent().append(tr);
}
function del(node){
$(node).parent().parent().remove();
}
function createCode(){
// debugger;
// 第1个区域的信息获取
var tableName = $(".area1 tr").eq(0).find("td").eq(0).find("input").val();
var clazzName = $(".area1 tr").eq(0).find("td").eq(1).find("input").val();
var authorName = $(".area1 tr").eq(1).find("td").eq(0).find("input").val();
var basePackageName = $(".area1 tr").eq(1).find("td").eq(1).find("input").val();
// tableName = "t_oa_meeting_info";
// clazzName = "MeetingInfo";
// authorName = "代码生成";
// basePackageName = "com.zking";
// 第2个区域的信息获取
// var tableName = $(".area2 tr").gt(0).find("td").eq(0).find("input").val();
var arr = new Array();
$(".area2 tr:gt(0)").each(function(i,n){
// debugger;
var attrName = $(n).find("td").eq(0).find("input").val();
var attrType = $(n).find("td").eq(1).find("option:selected").val();
arr.push({attrName,attrType});
})
// console.log(arr);
createArea3(arr,tableName,clazzName,authorName,basePackageName);
createArea4(arr,tableName,clazzName,authorName,basePackageName);
createArea5(arr,tableName,clazzName,authorName,basePackageName);
createArea6(arr,tableName,clazzName,authorName,basePackageName);
// 前端代码存储不能用 textarea
createArea7(arr,tableName,clazzName,authorName,basePackageName);
createArea8(arr,tableName,clazzName,authorName,basePackageName);
}
// 前端编辑代码实现
function createArea8(arr,tableName,clazzName,authorName,basePackageName){
var clazzname = clazzName.substring(0,1).toLocaleLowerCase()+clazzName.substring(1);
var $action = '${empty '+clazzname+' ? \'add\' : \'edit\'}';
var htmlStr='<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>'+'\r\n';
htmlStr+=''+'\r\n';
htmlStr+=''+'\r\n';
htmlStr+=''+'\r\n';
htmlStr+=''+'\r\n';
htmlStr+=' '+'\r\n';
htmlStr+=''+'\r\n';
htmlStr+=''+'\r\n';
htmlStr+='clazzname+'.action?methodName='+$action+'" method="post">'+'\r\n';
for(var i in arr){
htmlStr+=arr[i]["attrName"]+':+arr[i]["attrName"]+'" value="${'+clazzname+'.'+arr[i]["attrName"]+' }">
'+'\r\n';
}
htmlStr+=''+'\r\n';
htmlStr+=''+'\r\n';
htmlStr+=''+'\r\n';
htmlStr+=''+'\r\n';
$(".area8 input").val(htmlStr);
}
// 前端列表代码实现
function createArea7(arr,tableName,clazzName,authorName,basePackageName){
var clazzname = clazzName.substring(0,1).toLocaleLowerCase()+clazzName.substring(1);
var htmlStr='<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>'+'\r\n';
htmlStr+='<%@ taglib uri="http://jsp.veryedu.cn" prefix="z"%> '+'\r\n';
htmlStr+='<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> '+'\r\n';
htmlStr+=''+'\r\n';
htmlStr+=''+'\r\n';
htmlStr+=''+'\r\n';
htmlStr+=''+'\r\n';
htmlStr+=''+'\r\n';
htmlStr+='