Merge remote-tracking branch 'remotes/origin/master' into zgl

# Conflicts:
#	src/dao/DBManagement.java
zgl
zgl 6 years ago
commit e3885d95e7

File diff suppressed because it is too large Load Diff

@ -0,0 +1,7 @@
<component name="ProjectDictionaryState">
<dictionary name="zhai_">
<words>
<w>mariadb</w>
</words>
</dictionary>
</component>

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

@ -12,9 +12,7 @@ public class Delete extends Operation {
public Map<String, Object> execute(User subject) throws GExcptSQL {
Map<String, String> map = new HashMap<>();
map.put("id",(String)this.getOptions().get("id"));
for(String table:DBManagement.graduationDesignTables){
DBManagement.delete(table,map);
}
//todo
return this.getOptions();
}
}

@ -12,17 +12,15 @@ public class Select extends Operation {
@Override
public Map<String, Object> execute(User subject) throws GExcptSQL {
Map<String, String> vMap = new HashMap<>();
Map<String, String> limits = new HashMap<>();
String id = (String)this.getOptions().get("student_id");
String teacher_id = (String)this.getOptions().get("teacher_id");
vMap.put("id",id);
limits.put("id",id);
vMap.put("student_id",id);
vMap.put("teacher_id",teacher_id);
DBManagement.insert("graduation_design", vMap);
DBManagement.update("graduation_design", vMap,limits);
vMap.remove("student_id");
vMap.remove("teacher_id");
for(int i=1;i<DBManagement.graduationDesignTables.length;i++){
DBManagement.insert(DBManagement.graduationDesignTables[i],vMap);
}
return this.getOptions();
}
}

@ -11,9 +11,10 @@ import java.util.Map;
public class C_CollegeFillOpeningReportOpinion extends TempProcess{
String graduationDesignId;
Map<String,String> vMap;
private static String buttonName ="学院开题意见";
protected static String buttonName ="学院开题意见";
protected static String iconURL="../cssFile/images/fill.png";
protected static String targetURL="";
protected static String targetURL="/home/college-fill-opening-report-opinion";
protected static String info = "";
static String table="graduation_design_opening_report_opinion_record";
@ -50,4 +51,23 @@ public class C_CollegeFillOpeningReportOpinion extends TempProcess{
public Map<String, String> getVMap() {
return vMap;
}
@Override
public String getInfo() {
return info;
}
@Override
public String getTargetURL() {
return targetURL;
}
@Override
public String getIconURL() {
return iconURL;
}
@Override
public String getButtonName() {
return buttonName;
}
}

@ -12,9 +12,11 @@ public class C_CollegeFillScoreOpinion extends TempProcess{
String graduationDesignId;
Map<String,String> vMap;
private static String buttonName ="学院老师评分";
protected static String buttonName ="学院老师评分";
protected static String iconURL="../cssFile/images/fill.png";
protected static String targetURL="/home/college-fill-score-opinion";
static String table="graduation_design_reply_opinion_record_score";
protected static String info = "";
public void fillInformation() throws Exception{
if(!check()) throw new GExcptInit("FillInformation Attrs Init error!");
@ -43,4 +45,23 @@ public class C_CollegeFillScoreOpinion extends TempProcess{
public void setVMap(Map<String, String> vMap) {
this.vMap = vMap;
}
@Override
public String getInfo() {
return info;
}
@Override
public String getTargetURL() {
return targetURL;
}
@Override
public String getIconURL() {
return iconURL;
}
@Override
public String getButtonName() {
return buttonName;
}
}

@ -12,8 +12,11 @@ public class C_MentorFillOpeningReportOpinion extends TempProcess{
String graduationDesignId;
Map<String,String> vMap;
private static String buttonName ="导师开题意见";
protected static String buttonName ="导师开题意见";
protected static String iconURL="../cssFile/images/fill.png";
protected static String targetURL="/home/mentor-fill-opening-report-opinion";
protected static String info = "";
static String table="graduation_design_opening_report_opinion_record";
public void fillInformation() throws Exception{
@ -52,4 +55,23 @@ public class C_MentorFillOpeningReportOpinion extends TempProcess{
public Map<String, String> getVMap() {
return vMap;
}
@Override
public String getInfo() {
return info;
}
@Override
public String getTargetURL() {
return targetURL;
}
@Override
public String getIconURL() {
return iconURL;
}
@Override
public String getButtonName() {
return buttonName;
}
}

@ -12,8 +12,11 @@ public class C_MentorFillReview extends TempProcess {
public String graduationDesignId;
public Map<String,String> vMap;
private static String buttonName ="指导老师评阅";
protected static String buttonName ="指导老师评阅";
protected static String targetURL="/home/mentor-fill-review";
protected static String iconURL="../cssFile/images/fill.png";
protected static String info = "";
static String table="graduation_design_finished_product_mentor_score";
public void teacherTeamFillOpeningReportOpinion() throws Exception{
@ -50,5 +53,25 @@ public class C_MentorFillReview extends TempProcess {
public Map<String, String> getVMap() {
return vMap;
}
@Override
public String getInfo() {
return info;
}
@Override
public String getTargetURL() {
return targetURL;
}
@Override
public String getIconURL() {
return iconURL;
}
@Override
public String getButtonName() {
return buttonName;
}
}

@ -11,8 +11,10 @@ import java.util.Map;
public class C_ReviewerFillReview extends TempProcess {
public String graduationDesignId;
public Map<String,String> vMap;
private static String buttonName ="评阅老师评阅";
protected static String buttonName ="评阅老师评阅";
protected static String iconURL="../cssFile/images/fill.png";
protected static String targetURL="/home/reviewer-fill-review";
protected static String info = "";
static String table="graduation_design_finished_product_reviewer_score";
@ -49,6 +51,25 @@ public class C_ReviewerFillReview extends TempProcess {
public void setVMap(Map<String, String> vMap) {
this.vMap = vMap;
}
@Override
public String getInfo() {
return info;
}
@Override
public String getTargetURL() {
return targetURL;
}
@Override
public String getIconURL() {
return iconURL;
}
@Override
public String getButtonName() {
return buttonName;
}
}

@ -12,8 +12,10 @@ public class C_SchoolFillScoreOpinion extends TempProcess {
String graduationDesignId;
Map<String,String> vMap;
private static String buttonName ="学院老师评分";
protected static String buttonName ="学院老师评分";
protected static String iconURL="../cssFile/images/fill.png";
protected static String targetURL="/home/school-fill-score-opinion";
protected static String info = "";
static String table="graduation_design_reply_opinion_record_score";
public void fillInformation() throws Exception{
@ -51,6 +53,25 @@ public class C_SchoolFillScoreOpinion extends TempProcess {
return vMap;
}
@Override
public String getInfo() {
return info;
}
@Override
public String getTargetURL() {
return targetURL;
}
@Override
public String getIconURL() {
return iconURL;
}
@Override
public String getButtonName() {
return buttonName;
}
}

@ -8,12 +8,14 @@ import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class C_SecretaryFillOpeningReportOpinion extends TempProcess{
public class C_SecretaryFillOpeningReportRecord extends TempProcess{
String graduationDesignId;
Map<String,String> vMap;
private static String buttonName ="提交开题纪要";
protected static String buttonName ="提交开题纪要";
protected static String iconURL="../cssFile/images/fill.png";
protected static String targetURL="/home/secretary-fill-opening-report-record";
protected static String info = "";
static String table="graduation_design_opening_report_opinion_record";
@ -52,4 +54,23 @@ public class C_SecretaryFillOpeningReportOpinion extends TempProcess{
return vMap;
}
@Override
public String getInfo() {
return info;
}
@Override
public String getTargetURL() {
return targetURL;
}
@Override
public String getIconURL() {
return iconURL;
}
@Override
public String getButtonName() {
return buttonName;
}
}

@ -12,8 +12,10 @@ public class C_SecretaryFillReplyRecord extends TempProcess{
String graduationDesignId;
Map<String,String> vMap;
private static String buttonName ="提交答辩记录";
protected static String buttonName ="提交答辩记录";
protected static String iconURL="../cssFile/images/fill.png";
protected static String targetURL="/home/secretary-fill-reply-record";
protected static String info = "";
static String table="graduation_design_reply_opinion_record_score";
@ -53,4 +55,23 @@ public class C_SecretaryFillReplyRecord extends TempProcess{
}
@Override
public String getInfo() {
return info;
}
@Override
public String getTargetURL() {
return targetURL;
}
@Override
public String getIconURL() {
return iconURL;
}
@Override
public String getButtonName() {
return buttonName;
}
}

@ -11,8 +11,10 @@ import java.util.Map;
public class C_StudentFillGraduationDesignInformation extends TempProcess{
String graduationDesignId;
Map<String,String> vMap;
private static String buttonName ="填写选题信息";
protected static String buttonName ="填写选题信息";
protected static String iconURL="../cssFile/images/filText.png";
protected static String targetURL="/home/student-fill-graduation-design-information";
protected static String info = "";
static String table="graduation_design_opening_report_opinion_record";
@ -50,4 +52,23 @@ public class C_StudentFillGraduationDesignInformation extends TempProcess{
}
@Override
public String getInfo() {
return info;
}
@Override
public String getTargetURL() {
return targetURL;
}
@Override
public String getIconURL() {
return iconURL;
}
@Override
public String getButtonName() {
return buttonName;
}
}

@ -11,6 +11,10 @@ import java.util.Map;
public class C_StudentSearchTeacher extends TempProcess{
String teacherID;
protected static String buttonName = "";
protected static String iconURL="";
protected static String targetURL="";
protected static String info = "";
static String table = "teacher";
Map<String,String> TeacherInfo=new HashMap<String, String>();
@ -67,4 +71,23 @@ public class C_StudentSearchTeacher extends TempProcess{
public void setTeacherID(String teacherID){
this.teacherID=teacherID;
}
@Override
public String getInfo() {
return info;
}
@Override
public String getTargetURL() {
return targetURL;
}
@Override
public String getIconURL() {
return iconURL;
}
@Override
public String getButtonName() {
return buttonName;
}
}

@ -12,8 +12,10 @@ import java.util.Map;
public class C_StudentSelectTeacher extends TempProcess {
String studentId;
String teacherId;
private static String buttonName ="选择老师";
protected static String buttonName ="选择老师";
protected static String targetURL="/home/student-select-teacher";
protected static String iconURL="../cssFile/images/select.png";
protected static String info = "";
public void select()throws Exception{
if(!check()) throw new GExcptInit("ID Attrs init error!");
@ -63,5 +65,24 @@ public class C_StudentSelectTeacher extends TempProcess {
}
@Override
public String getInfo() {
return info;
}
@Override
public String getTargetURL() {
return targetURL;
}
@Override
public String getIconURL() {
return iconURL;
}
@Override
public String getButtonName() {
return buttonName;
}
}

@ -7,12 +7,14 @@ import java.io.File;
import java.util.HashMap;
import java.util.Map;
public class C_StudentUploadFinishedProduct extends TempProcess{
public class C_StudentUploadFinishedProduct extends C_UploadFile {
File finishedProduct;
String graduationDesignId;
private static String buttonName ="提交定稿";
protected static String buttonName ="提交定稿";
protected static String iconURL="../cssFile/images/upload.png";
protected static String targetURL="/home/student-upload-finished-product";
protected static String info = "";
static String file_type = "finished_product";
public void uploadOpeningReport() throws Exception{
@ -47,4 +49,23 @@ public class C_StudentUploadFinishedProduct extends TempProcess{
this.graduationDesignId = graduationDesignId;
}
@Override
public String getInfo() {
return info;
}
@Override
public String getTargetURL() {
return targetURL;
}
@Override
public String getIconURL() {
return iconURL;
}
@Override
public String getButtonName() {
return buttonName;
}
}

@ -10,9 +10,11 @@ import java.util.Map;
public class C_StudentUploadOpeningReport extends TempProcess{
File openingReport;
String graduationDesignId;
private static String buttonName ="提交开题报告";
protected static String buttonName ="提交开题报告";
static String file_type = "opening_report";
protected static String targetURL="/home/student-upload-opening-report";
protected static String iconURL="../cssFile/images/upload.png";
protected static String info = "";
public void uploadOpeningReport() throws Exception{
if(!check()) throw new GExcptInit("Upload OpeningReport Attrs init error!");
@ -47,4 +49,24 @@ public class C_StudentUploadOpeningReport extends TempProcess{
public void setGraduationDesignId(String graduationDesignId) {
this.graduationDesignId = graduationDesignId;
}
@Override
public String getInfo() {
return info;
}
@Override
public String getTargetURL() {
return targetURL;
}
@Override
public String getIconURL() {
return iconURL;
}
@Override
public String getButtonName() {
return buttonName;
}
}

@ -11,6 +11,10 @@ import java.util.Map;
public class C_TeacherSearchStudent extends TempProcess {
String studentId;
protected static String buttonName = "";
protected static String iconURL="";
protected static String targetURL="";
protected static String info = "";
static String table="student";
public Map<String,String> search() throws Exception{
@ -67,4 +71,23 @@ public class C_TeacherSearchStudent extends TempProcess {
this.studentId=studentId;
}
@Override
public String getInfo() {
return info;
}
@Override
public String getTargetURL() {
return targetURL;
}
@Override
public String getIconURL() {
return iconURL;
}
@Override
public String getButtonName() {
return buttonName;
}
}

@ -12,8 +12,10 @@ import java.util.Map;
public class C_TeacherSelectStudent extends TempProcess {
String studentId;
String teacherId;
private static String buttonName ="选择学生";
protected static String buttonName ="选择学生";
protected static String iconURL="";
protected static String targetURL="/home/teacher-select-student";
protected static String info = "";
public void select()throws Exception{
if(!check()) throw new GExcptInit("ID Attrs init error!");
@ -62,6 +64,24 @@ public class C_TeacherSelectStudent extends TempProcess {
this.studentId = studentId;
}
@Override
public String getInfo() {
return info;
}
@Override
public String getTargetURL() {
return targetURL;
}
@Override
public String getIconURL() {
return iconURL;
}
@Override
public String getButtonName() {
return buttonName;
}
}

@ -12,8 +12,10 @@ public class C_TeacherTeamFillOpeningReportOpinion extends TempProcess{
String graduationDesignId;
Map<String,String> vMap;
private static String buttonName ="开题小组意见";
protected static String buttonName ="开题小组意见";
protected static String iconURL="../cssFile/images/fill.png";
protected static String targetURL="/home/teacher-team-fill-opening-report-opinion";
protected static String info = "";
static String table="graduation_design_opening_report_opinion_record";
@ -53,5 +55,24 @@ public class C_TeacherTeamFillOpeningReportOpinion extends TempProcess{
return vMap;
}
@Override
public String getInfo() {
return info;
}
@Override
public String getTargetURL() {
return targetURL;
}
@Override
public String getIconURL() {
return iconURL;
}
@Override
public String getButtonName() {
return buttonName;
}
}

@ -10,8 +10,10 @@ import java.util.Map;
public class C_TeacherTeamFillScoreOpinion extends TempProcess {
private static String buttonName = "答辩小组评分";
protected static String buttonName = "答辩小组评分";
protected static String iconURL="../cssFile/images/fill.png";
protected static String targetURL="/home/teacher-team-fill-score-opinion";
protected static String info = "";
String graduationDesignId;
Map<String,String> vMap;
@ -35,6 +37,27 @@ public class C_TeacherTeamFillScoreOpinion extends TempProcess {
return false;
return true;
}
@Override
public String getInfo() {
return info;
}
@Override
public String getTargetURL() {
return targetURL;
}
@Override
public String getIconURL() {
return iconURL;
}
@Override
public String getButtonName() {
return buttonName;
}
@Override
public String getGraduationDesignId() {
return graduationDesignId;

@ -0,0 +1,7 @@
package core.process;
public abstract class C_UploadFile extends TempProcess {
public String getJspURL(){
return "/home/upload_file.jsp";
}
}

@ -4,16 +4,10 @@ import core.operation.Operation;
public abstract class Process{
private static String buttonName;
protected static String targetURL;
protected static String iconURL;
private String status;
private String permission;
private Operation operation;
private String info;
protected abstract boolean check();
@ -33,18 +27,6 @@ public abstract class Process{
this.operation = operation;
}
public String getButtonName() {
return buttonName;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
public String getStatus() {
return status;
}
@ -53,11 +35,11 @@ public abstract class Process{
this.status = status;
}
public static String getTargetURL() {
return targetURL;
}
public abstract String getInfo();
public static String getIconURL() {
return iconURL;
}
public abstract String getTargetURL();
public abstract String getIconURL();
public abstract String getButtonName();
}

@ -15,7 +15,7 @@ public class ProcessManagement {
public static Condition getCondition(User user, Map<String, String> status){
Condition condition = new Condition();
for(Map.Entry<String,String> entry:status.entrySet()){
String[] s = entry.getKey().split(".");
String[] s = entry.getKey().split("\\.");
TempProcess tempProcess = (TempProcess) getProcess(s[1]);
tempProcess.setGraduationDesignId(s[0]);
tempProcess.setStatus(entry.getValue());
@ -26,17 +26,18 @@ public class ProcessManagement {
}
private static List<Process> getLastProcesses(User user) {
return null;
List<Process> lp = new ArrayList<>();
return lp;
}
//Map<graduation_design_id.x_status,status>
public static Map<String,String> getStatus(User user) throws Exception {
Map<String, String> status = new HashMap<>();
Map<String,String> userTables = DBManagement.getUserStatusTables(user.getType());
String[][] userTables = DBManagement.getUserStatusTables(user.getType());
String graduationDesignId = null;
for(Map.Entry<String,String> entry:userTables.entrySet()){
String[] ti = entry.getKey().split("\\.");
String[] ts = entry.getValue().split("\\.");
for(String[] s:userTables){
String[] ti = s[0].split("\\.");
String[] ts = s[1].split("\\.");
List<String> ls = new ArrayList<>();
ls.add("id");
Map<String,String> limits = new HashMap<>();
@ -55,9 +56,37 @@ public class ProcessManagement {
return status;
}
public static Process getProcess(String process){
switch (process){
case "finished_product_status":
switch (process) {
case "teacher_choose_student_status":
return new C_TeacherSelectStudent();
case "student_choose_teacher_status":
return new C_StudentSelectTeacher();
case"student_fill_graduation_design_information_status":
return new C_StudentFillGraduationDesignInformation();
case"opening_report_status":
return new C_StudentUploadOpeningReport();
case"opening_report_mentor_opinion_status":
return new C_MentorFillOpeningReportOpinion();
case"opening_report_teacher_team_opinion_status":
return new C_TeacherTeamFillOpeningReportOpinion();
case"opening_report_college_opinion_status":
return new C_CollegeFillOpeningReportOpinion();
case"opening_report_secretary_record_status":
return new C_SecretaryFillOpeningReportRecord();
case"finished_product_status":
return new C_StudentUploadFinishedProduct();
case"finished_product_mentor_score_status":
return new C_MentorFillReview();
case"finished_product_reviewer_score_status":
return new C_ReviewerFillReview();
case"reply_ secretary_record_status":
return new C_SecretaryFillReplyRecord();
case"reply_ teacher_team_score_status":
return new C_TeacherTeamFillScoreOpinion();
case"reply_college_score_status":
return new C_CollegeFillScoreOpinion();
case"reply_school_score_status":
return new C_SchoolFillScoreOpinion();
default:
return null;
}

@ -50,11 +50,10 @@ public interface AccountManagement {
}
static User register(String userType, Map<String, String> vMap) throws Exception {
DBManagement.insert(userType,vMap);
User user = createUser(userType, vMap);
if(userType=="student"){
//initAllStatus((Student) user);
if(userType.equals("student")){
initAllStatus(vMap.get("id"));
}
User user = createUser(userType, vMap);
return user;
}
static void logout(User user){
@ -70,9 +69,24 @@ public interface AccountManagement {
return user;
}
String defaultStatus = "1";
static void initAllStatus(String id){
for(Map.Entry<String,String> entry:DBManagement.allStatus.entrySet()){
static void initAllStatus(String id) throws GExcptSQL {
for(String table:DBManagement.graduationDesignTables){
Map<String,String> vMap = new HashMap<>();
vMap.put("id",id);
DBManagement.insert(table,vMap);
}
for(String[] s:DBManagement.allStatus){
Map<String,String> vMap = new HashMap<>();
Map<String,String> limits = new HashMap<>();
limits.put("id",id);
vMap.put(s[1],defaultStatus);
DBManagement.update(s[0],vMap,limits);
}
//
Map<String,String> vMap = new HashMap<>();
Map<String,String> limits = new HashMap<>();
limits.put("id",id);
vMap.put("student_id",id);
DBManagement.update("graduation_design",vMap,limits);
}
}

@ -2,7 +2,6 @@ package dao;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import error.GExcptSQL;
@ -28,7 +27,6 @@ public class DBManagement {
"graduation_design_opening_report_opinion_record",
"graduation_design_reply",
"graduation_design_reply_opinion_record_score"
};
public static String[] studentInfo = {
"id",
@ -57,55 +55,49 @@ public class DBManagement {
"phone_number"
};
//<table1.x_id,table2.x_status>
public static Map<String,String> graduationDesignStudentTables = new HashMap<>(){
{
put("graduation_design.student_id","graduation_design.student_chooser_teacher_status");
put("graduation_design.student_id","graduation_design_information.student_fill_graduation_design_information_status");
put("graduation_design.student_id","graduation_design_opening_report.opening_report_status");
put("opening_report_secretary_team.leader_student_id","graduation_design_opening_report_opinion_record.opening_report_secretary_record_status");
put("opening_report_secretary_team.student1_id","graduation_design_opening_report_opinion_record.opening_report_secretary_record_status");
put("opening_report_secretary_team.student2_id","graduation_design_opening_report_opinion_record.opening_report_secretary_record_status");
put("graduation_design.student_id","graduation_design_finished_product.finished_product_status");
put("reply_secretary_team.leader_student_id","graduation_design_reply_opinion_record_score.reply_ secretary_record_status");
put("reply_secretary_team.teacher1_id","graduation_design_reply_opinion_record_score.reply_ secretary_record_status");
put("reply_secretary_team.teacher2_id","graduation_design_reply_opinion_record_score.reply_ secretary_record_status");
}
public static String[][] graduationDesignStudentTables ={
{"graduation_design.student_id","graduation_design.student_choose_teacher_status"},
{"graduation_design.student_id","graduation_design_information.student_fill_graduation_design_information_status"},
{"graduation_design.student_id","graduation_design_opening_report.opening_report_status"},
{"graduation_design_opening_report_view.leader_student_id","graduation_design_opening_report_opinion_record.opening_report_secretary_record_status"},
{"graduation_design_opening_report_view.student1_id","graduation_design_opening_report_opinion_record.opening_report_secretary_record_status"},
{"graduation_design_opening_report_view.student2_id","graduation_design_opening_report_opinion_record.opening_report_secretary_record_status"},
{"graduation_design.student_id","graduation_design_finished_product.finished_product_status"},
{"graduation_design_reply_view.leader_student_id","graduation_design_reply_opinion_record_score.reply_secretary_record_status"},
{"graduation_design_reply_view.teacher1_id","graduation_design_reply_opinion_record_score.reply_secretary_record_status"},
{"graduation_design_reply_view.teacher2_id","graduation_design_reply_opinion_record_score.reply_secretary_record_status"}
};
public static Map<String,String> graduationDesignTeacherTables = new HashMap<>(){
{
put("graduation_design.teacher_id","graduation_design.teacher_choose_student_status");
put("graduation_design.teacher_id","graduation_design_opening_report_opinion_record.opening_report_mentor_opinion_status");
put("opening_report_teacher_team.leader_teacher_id","graduation_design_opening_report_opinion_record.opening_report_teacher_team_opinion_status");
put("opening_report_teacher_team.teacher1_id","graduation_design_opening_report_opinion_record.opening_report_teacher_team_opinion_status");
put("opening_report_teacher_team.teacher2_id","graduation_design_opening_report_opinion_record.opening_report_teacher_team_opinion_status");
put("graduation_design_opening_report_opinion_record.opening_report_college_teacher_id","graduation_design_opening_report_opinion_record.opening_report_college_opinion_status");
put("graduation_design.teacher_id","graduation_design_finished_product_mentor_score.finished_product_mentor_score_status");
put("graduation_design_finished_product_reviewer_score.reviewer_teacher_id","graduation_design_finished_product_reviewer_score.finished_product_reviewer_score_status");
put("reply_teacher_team.leader_teacher_id","graduation_design_reply_opinion_record_score.reply_ teacher_team_score_status");
put("reply_teacher_team. teacher1_id","graduation_design_reply_opinion_record_score.reply_ teacher_team_score_status");
put("reply_teacher_team. teacher2_id","graduation_design_reply_opinion_record_score.reply_ teacher_team_score_status");
put("graduation_design_reply_opinion_record_score.reply_college_teacher_id","graduation_design_reply_opinion_record_score.reply_college_score_status");
put("graduation_design_reply_opinion_record_score.reply_school_teacher_id","graduation_design_reply_opinion_record_score.reply_school_score_status");
}
public static String[][] graduationDesignTeacherTables = {
{"graduation_design.teacher_id","graduation_design.teacher_choose_student_status"},
{"graduation_design.teacher_id","graduation_design_opening_report_opinion_record.opening_report_mentor_opinion_status"},
{"graduation_design_opening_report_view.leader_teacher_id","graduation_design_opening_report_opinion_record.opening_report_teacher_team_opinion_status"},
{"graduation_design_opening_report_view.teacher1_id","graduation_design_opening_report_opinion_record.opening_report_teacher_team_opinion_status"},
{"graduation_design_opening_report_view.teacher2_id","graduation_design_opening_report_opinion_record.opening_report_teacher_team_opinion_status"},
{"graduation_design_opening_report_opinion_record.opening_report_college_teacher_id","graduation_design_opening_report_opinion_record.opening_report_college_opinion_status"},
{"graduation_design.teacher_id","graduation_design_finished_product_mentor_score.finished_product_mentor_score_status"},
{"graduation_design_finished_product_reviewer_score.reviewer_teacher_id","graduation_design_finished_product_reviewer_score.finished_product_reviewer_score_status"},
{"graduation_design_reply_view.leader_teacher_id","graduation_design_reply_opinion_record_score.reply_teacher_team_score_status"},
{"graduation_design_reply_view.teacher1_id","graduation_design_reply_opinion_record_score.reply_teacher_team_score_status"},
{"graduation_design_reply_view.teacher2_id","graduation_design_reply_opinion_record_score.reply_teacher_team_score_status"},
{"graduation_design_reply_opinion_record_score.reply_college_teacher_id","graduation_design_reply_opinion_record_score.reply_college_score_status"},
{"graduation_design_reply_opinion_record_score.reply_school_teacher_id","graduation_design_reply_opinion_record_score.reply_school_score_status"}
};
public static Map<String,String> allStatus = new HashMap<>(){
{
put("graduation_design","teacher_choose_student_status");
put("graduation_design","student_choose_teacher_status");
put("graduation_design_information","student_fill_graduation_design_information_status");
put("graduation_design_opening_report","opening_report_status");
put("graduation_design_opening_report_opinion_record","opening_report_mentor_opinion_status");
put("graduation_design_opening_report_opinion_record","opening_report_teacher_team_opinion_status");
put("graduation_design_opening_report_opinion_record","opening_report_college_opinion_status");
put("graduation_design_opening_report_opinion_record","opening_report_secretary_record_status");
put("graduation_design_finished_product","finished_product_status");
put("graduation_design_finished_product_mentor_score","finished_product_mentor_score_status");
put("graduation_design_finished_product_reviewer_score","finished_product_reviewer_score_status");
put("graduation_design_reply_opinion_record_score","reply_ secretary_record_status");
put("graduation_design_reply_opinion_record_score","reply_ teacher_team_score_status");
put("graduation_design_reply_opinion_record_score","reply_college_score_status");
put("graduation_design_reply_opinion_record_score","reply_school_score_status");
}
public static String[][] allStatus = {
{"graduation_design","teacher_choose_student_status"},
{"graduation_design","student_choose_teacher_status"},
{"graduation_design_information","student_fill_graduation_design_information_status"},
{"graduation_design_opening_report","opening_report_status"},
{"graduation_design_opening_report_opinion_record","opening_report_mentor_opinion_status"},
{"graduation_design_opening_report_opinion_record","opening_report_teacher_team_opinion_status"},
{"graduation_design_opening_report_opinion_record","opening_report_college_opinion_status"},
{"graduation_design_opening_report_opinion_record","opening_report_secretary_record_status"},
{"graduation_design_finished_product","finished_product_status"},
{"graduation_design_finished_product_mentor_score","finished_product_mentor_score_status"},
{"graduation_design_finished_product_reviewer_score","finished_product_reviewer_score_status"},
{"graduation_design_reply_opinion_record_score","reply_secretary_record_status"},
{"graduation_design_reply_opinion_record_score","reply_teacher_team_score_status"},
{"graduation_design_reply_opinion_record_score","reply_college_score_status"},
{"graduation_design_reply_opinion_record_score","reply_school_score_status"}
};
public static String driverClassName="org.mariadb.jdbc.Driver";
@ -138,7 +130,7 @@ public class DBManagement {
}
return null;
}
public static Map<String,String> getUserStatusTables(String userType){
public static String[][] getUserStatusTables(String userType){
if(userType.equals("student")){
return graduationDesignStudentTables;
}
@ -179,6 +171,11 @@ public class DBManagement {
String sql = update.getSQL();
update(sql);
}
public static void updateAll(String table, List<String> fields, String increment) throws GExcptSQL {
UpdateAll updateAll = new UpdateAll(table,fields,increment);
String sql = updateAll.getSQL();
update(sql);
}
public static List<String[]> query(String sql) throws Exception {
if(!ifInit) return null;
List<String[]> ls;
@ -198,7 +195,7 @@ public class DBManagement {
ls.add(s);
}
} catch (SQLException e) {
throw new GExcptSQL("Connect Failure");
throw new GExcptSQL("Connect Failure\n"+sql);
}finally {
if(con!=null) {
try {
@ -218,7 +215,7 @@ public class DBManagement {
Statement stmt = con.createStatement();
stmt.executeUpdate(sql);
} catch (SQLException e) {
throw new GExcptSQL("Connect Failure");
throw new GExcptSQL("Connect Failure\n"+sql);
}finally {
if(con!=null) {
try {
@ -229,4 +226,6 @@ public class DBManagement {
}
}
}
}

@ -0,0 +1,48 @@
package dao;
import java.util.List;
public class UpdateAll extends SQLStmt {
private static final String fs ="UPDATE ";
List<String> fields;
String increment;
public UpdateAll(String table, List<String> fields, String increment) {
super(table);
this.setFields(fields);
this.setIncrement(increment);
}
@Override
public String getSQL() {
return this.getFs()+this.getUs();
}
@Override
public String getFs() {
return fs+this.getTable()+" ";
}
public String getUs(){
String us = "SET ";
for(String s:this.getFields()){
us+=s+" = "+s+" + "+this.getIncrement()+", ";
}
return utils.Utils.cutTail(us,2);
}
public List<String> getFields() {
return fields;
}
public void setFields(List<String> fields) {
this.fields = fields;
}
public String getIncrement() {
return increment;
}
public void setIncrement(String increment) {
this.increment = increment;
}
}

@ -1,6 +1,8 @@
package gdms;
import dao.DBManagement;
import error.GExcptInit;
import error.GExcptSQL;
import java.util.*;
@ -15,8 +17,66 @@ public class GDMS {
}
}
private static TimerTask getTimerTask(String s) throws GExcptInit {
if(s==""){
switch (s){
case "teacher_choose_student_start_date":
return new TimerTask() {
@Override
public void run() {
List<String> fields = new ArrayList<>();
fields.add("teacher_choose_student_status");
try {
DBManagement.updateAll("graduation_design",fields,"1");
} catch (GExcptSQL gExcptSQL) {
gExcptSQL.printStackTrace();
System.exit(1);
}
}
};
case "student_choose_teacher_start_date":
return new TimerTask() {
@Override
public void run() {
List<String> fields = new ArrayList<>();
fields.add("teacher_choose_student_status");
try {
DBManagement.updateAll("graduation_design",fields,"1");
} catch (GExcptSQL gExcptSQL) {
gExcptSQL.printStackTrace();
System.exit(1);
}
}
};
case "choose_end_date":
return new TimerTask() {
@Override
public void run() {
;
}
};
case "opening_report_opinion_deadline_date":
return new TimerTask() {
@Override
public void run() {
;
}
};
case "finished_product_deadline_date":
return new TimerTask() {
@Override
public void run() {
;
}
};
case "finished_product_review_deadline_date":
return new TimerTask() {
@Override
public void run() {
;
}
};
case "reply_opinion_deadline_date":
return new TimerTask() {
@Override
public void run() {

@ -5,5 +5,5 @@
"opening_report_opinion_deadline_date": "",
"finished_product_deadline_date": "",
"finished_product_review_deadline_date": "",
"reply_opition_deadline_date": ""
"reply_opinion_deadline_date": ""
}

@ -2,7 +2,9 @@ package gdms;
import core.operation.utils.Utils;
import core.process.C_StudentSelectTeacher;
import dao.DBManagement;
import dao.Select;
import dao.UpdateAll;
import java.util.ArrayList;
import java.util.HashMap;
@ -11,12 +13,12 @@ import java.util.Map;
public class test {
public static void main(String[] args){
String s = "graduation_design_finished_product_reviewer_score.reviewer_teacher_id";
String[] ss = s.split("\\.");
System.out.println(ss[0]);
List<String> ls = new ArrayList<>();
ls.add("teacher_choose_student_status");
ls.add("student_choose_teacher_status");
UpdateAll s = new UpdateAll("graduation_design",ls,"10");
System.out.println(s.getSQL());
}
static void changeB(String a){
a="B";
}
}

@ -15,6 +15,7 @@ public class S_CollegeFillOpeningReportOpinion extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id = request.getParameter("id");
Map<String,String> vMap = servlet.Utils.getVMap(vName,request);
C_CollegeFillOpeningReportOpinion p =new C_CollegeFillOpeningReportOpinion();
p.setGraduationDesignId(id);
p.setVMap(vMap);

@ -1,5 +1,7 @@
package servlet;
import core.process.C_MentorFillReview;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
@ -14,6 +16,16 @@ public class S_MentorFillReview extends HttpServlet {
String id = request.getParameter("id");
Map<String,String> vMap = servlet.Utils.getVMap(vName,request);
C_MentorFillReview p=new C_MentorFillReview();
p.setGraduationDesignId(id);
p.setVMap(vMap);
try {
p.teacherTeamFillOpeningReportOpinion();
} catch (Exception e) {
e.printStackTrace();
response.sendRedirect("/op_fail.jsp");
}
}
static String[] vName = {
"total_grade",

@ -1,5 +1,7 @@
package servlet;
import core.process.C_ReviewerFillReview;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
@ -14,6 +16,16 @@ public class S_ReviewerFillReview extends HttpServlet {
String id = request.getParameter("id");
Map<String,String> vMap = servlet.Utils.getVMap(vName,request);
C_ReviewerFillReview p=new C_ReviewerFillReview();
p.setGraduationDesignId(id);
p.setVMap(vMap);
try {
p.TeacherTeamFillOpeningReportOpinion();
} catch (Exception e) {
e.printStackTrace();
response.sendRedirect("/op_fail.jsp");
}
}
static String[] vName = {
"score",

@ -1,5 +1,7 @@
package servlet;
import core.process.C_SchoolFillScoreOpinion;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
@ -14,6 +16,16 @@ public class S_SchoolFillScoreOpinion extends HttpServlet {
String id = request.getParameter("id");
Map<String,String> vMap = servlet.Utils.getVMap(vName,request);
C_SchoolFillScoreOpinion p=new C_SchoolFillScoreOpinion();
p.setGraduationDesignId(id);
p.setVMap(vMap);
try {
p.fillInformation();
} catch (Exception e) {
e.printStackTrace();
response.sendRedirect("/op_fail.jsp");
}
}
static String[] vName = {
"school_opinion",

@ -1,5 +1,7 @@
package servlet;
import core.process.C_SecretaryFillOpeningReportRecord;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
@ -14,6 +16,16 @@ public class S_SecretaryFillOpeningReportRecord extends HttpServlet {
String id = request.getParameter("id");
Map<String,String> vMap = servlet.Utils.getVMap(vName,request);
C_SecretaryFillOpeningReportRecord p=new C_SecretaryFillOpeningReportRecord();
p.setGraduationDesignId(id);
p.setVMap(vMap);
try {
p.fillInformation();
} catch (Exception e) {
e.printStackTrace();
response.sendRedirect("/op_fail.jsp");
}
}
static String[] vName = {
"secretary_record"

@ -1,5 +1,7 @@
package servlet;
import core.process.C_SecretaryFillReplyRecord;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
@ -14,6 +16,15 @@ public class S_SecretaryFillReplyRecord extends HttpServlet {
String id = request.getParameter("id");
Map<String,String> vMap = servlet.Utils.getVMap(vName,request);
C_SecretaryFillReplyRecord p=new C_SecretaryFillReplyRecord();
p.setGraduationDesignId(id);
p.setVMap(vMap);
try {
p.fillInformation();
} catch (Exception e) {
e.printStackTrace();
response.sendRedirect("/op_fail.jsp");
}
}
static String[] vName = {
"secretary_record"

@ -1,5 +1,7 @@
package servlet;
import core.process.C_StudentFillGraduationDesignInformation;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
@ -15,6 +17,16 @@ public class S_StudentFillGraduationDesignInformation extends HttpServlet {
String id = request.getParameter("id");
Map<String,String> vMap = servlet.Utils.getVMap(vName,request);
C_StudentFillGraduationDesignInformation p=new C_StudentFillGraduationDesignInformation();
p.setGraduationDesignId(id);
p.setVMap(vMap);
try {
p.fillInformation();
} catch (Exception e) {
e.printStackTrace();
response.sendRedirect("/op_fail.jsp");
}
}
static String[] vName = {
"chinese_name",

@ -1,6 +1,5 @@
package servlet;
import core.process.C_StudentSearchTeacher;
import core.process.C_StudentSelectTeacher;
import core.user.User;
import javax.servlet.ServletException;

@ -1,5 +1,7 @@
package servlet;
import core.process.C_TeacherTeamFillOpeningReportOpinion;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
@ -14,6 +16,15 @@ public class S_TeacherTeamFillOpeningReportOpinion extends HttpServlet {
String id = request.getParameter("id");
Map<String,String> vMap = servlet.Utils.getVMap(vName,request);
C_TeacherTeamFillOpeningReportOpinion p=new C_TeacherTeamFillOpeningReportOpinion();
p.setGraduationDesignId(id);
p.setVMap(vMap);
try {
p.fillInformation();
} catch (Exception e) {
e.printStackTrace();
response.sendRedirect("/op_fail.jsp");
}
}
static String[] vName = {
"report_teacher_team_opinion"

@ -1,5 +1,7 @@
package servlet;
import core.process.C_TeacherTeamFillScoreOpinion;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
@ -14,6 +16,15 @@ public class S_TeacherTeamFillScoreOpinion extends HttpServlet {
String id = request.getParameter("id");
Map<String,String> vMap = servlet.Utils.getVMap(vName,request);
C_TeacherTeamFillScoreOpinion p=new C_TeacherTeamFillScoreOpinion();
p.setGraduationDesignId(id);
p.setVMap(vMap);
try {
p.fillInformation();
} catch (Exception e) {
e.printStackTrace();
response.sendRedirect("/op_fail.jsp");
}
}
static String[] vName = {
"teacher_team_opinion",

@ -11,7 +11,6 @@
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="core.process.C_TeacherSearchStudent" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<html>

@ -0,0 +1,16 @@
<%--
Created by IntelliJ IDEA.
User: zhai_
Date: 2019/1/15
Time: 16:43
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
$END$
</body>
</html>
Loading…
Cancel
Save