提交 bbeb4cd7 编写于 作者: Y yournamenomico271

ssm

上级
<component name="ArtifactManager">
<artifact type="war" name="SSM_HRMS:war">
<output-path>$PROJECT_DIR$/target</output-path>
<root id="archive" name="SSM_HRMS.war">
<element id="artifact" artifact-name="SSM_HRMS:war exploded" />
</root>
</artifact>
</component>
\ No newline at end of file
<component name="ArtifactManager">
<artifact type="exploded-war" name="SSM_HRMS:war exploded">
<output-path>$PROJECT_DIR$/target/SSM_HRMS</output-path>
<root id="root">
<element id="directory" name="WEB-INF">
<element id="directory" name="classes">
<element id="module-output" name="SSM_HRMS" />
</element>
<element id="directory" name="lib">
<element id="library" level="project" name="Maven: org.springframework:spring-core:4.2.9.RELEASE" />
<element id="library" level="project" name="Maven: commons-logging:commons-logging:1.2" />
<element id="library" level="project" name="Maven: org.springframework:spring-context:4.2.9.RELEASE" />
<element id="library" level="project" name="Maven: org.springframework:spring-aop:4.2.9.RELEASE" />
<element id="library" level="project" name="Maven: aopalliance:aopalliance:1.0" />
<element id="library" level="project" name="Maven: org.springframework:spring-expression:4.2.9.RELEASE" />
<element id="library" level="project" name="Maven: org.springframework:spring-beans:4.2.9.RELEASE" />
<element id="library" level="project" name="Maven: org.springframework:spring-web:4.2.9.RELEASE" />
<element id="library" level="project" name="Maven: org.springframework:spring-jdbc:4.2.9.RELEASE" />
<element id="library" level="project" name="Maven: org.springframework:spring-tx:4.2.9.RELEASE" />
<element id="library" level="project" name="Maven: org.springframework:spring-webmvc:4.2.9.RELEASE" />
<element id="library" level="project" name="Maven: mysql:mysql-connector-java:3.1.14" />
<element id="library" level="project" name="Maven: org.mybatis:mybatis:3.4.1" />
<element id="library" level="project" name="Maven: org.mybatis:mybatis-spring:1.3.1" />
<element id="library" level="project" name="Maven: javax.servlet:jstl:1.2" />
<element id="library" level="project" name="Maven: taglibs:standard:1.1.2" />
<element id="library" level="project" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.11" />
<element id="library" level="project" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.0" />
<element id="library" level="project" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.10" />
<element id="library" level="project" name="Maven: junit:junit:4.12" />
<element id="library" level="project" name="Maven: org.hamcrest:hamcrest-core:1.3" />
<element id="library" level="project" name="Maven: org.springframework:spring-test:4.2.9.RELEASE" />
</element>
</element>
<element id="directory" name="META-INF">
<element id="file-copy" path="$PROJECT_DIR$/target/SSM_HRMS/META-INF/MANIFEST.MF" />
</element>
<element id="javaee-facet-resources" facet="SSM_HRMS/web/Web" />
</root>
</artifact>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="SSM_HRMS" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel>
<module name="SSM_HRMS" target="1.7" />
</bytecodeTargetLevel>
</component>
</project>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: aopalliance:aopalliance:1.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/aopalliance/aopalliance/1.0/aopalliance-1.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/aopalliance/aopalliance/1.0/aopalliance-1.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/aopalliance/aopalliance/1.0/aopalliance-1.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.8.0/jackson-annotations-2.8.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.8.0/jackson-annotations-2.8.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.8.0/jackson-annotations-2.8.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.10">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.8.10/jackson-core-2.8.10.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.8.10/jackson-core-2.8.10-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.8.10/jackson-core-2.8.10-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.11">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.8.11/jackson-databind-2.8.11.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.8.11/jackson-databind-2.8.11-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.8.11/jackson-databind-2.8.11-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: commons-logging:commons-logging:1.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.2/commons-logging-1.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.2/commons-logging-1.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.2/commons-logging-1.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: javax.servlet:javax.servlet-api:3.1.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: javax.servlet.jsp:jsp-api:2.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: javax.servlet:jstl:1.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/jstl/1.2/jstl-1.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/jstl/1.2/jstl-1.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/jstl/1.2/jstl-1.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: junit:junit:4.12">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: mysql:mysql-connector-java:3.1.14">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/mysql/mysql-connector-java/3.1.14/mysql-connector-java-3.1.14.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/mysql/mysql-connector-java/3.1.14/mysql-connector-java-3.1.14-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/mysql/mysql-connector-java/3.1.14/mysql-connector-java-3.1.14-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.hamcrest:hamcrest-core:1.3">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.mybatis:mybatis:3.4.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.4.1/mybatis-3.4.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.4.1/mybatis-3.4.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.4.1/mybatis-3.4.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.mybatis:mybatis-spring:1.3.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/1.3.1/mybatis-spring-1.3.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/1.3.1/mybatis-spring-1.3.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/1.3.1/mybatis-spring-1.3.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-aop:4.2.9.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/4.2.9.RELEASE/spring-aop-4.2.9.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/4.2.9.RELEASE/spring-aop-4.2.9.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/4.2.9.RELEASE/spring-aop-4.2.9.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-beans:4.2.9.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-beans/4.2.9.RELEASE/spring-beans-4.2.9.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-beans/4.2.9.RELEASE/spring-beans-4.2.9.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-beans/4.2.9.RELEASE/spring-beans-4.2.9.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-context:4.2.9.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/4.2.9.RELEASE/spring-context-4.2.9.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/4.2.9.RELEASE/spring-context-4.2.9.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/4.2.9.RELEASE/spring-context-4.2.9.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-core:4.2.9.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/4.2.9.RELEASE/spring-core-4.2.9.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/4.2.9.RELEASE/spring-core-4.2.9.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/4.2.9.RELEASE/spring-core-4.2.9.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-expression:4.2.9.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-expression/4.2.9.RELEASE/spring-expression-4.2.9.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-expression/4.2.9.RELEASE/spring-expression-4.2.9.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-expression/4.2.9.RELEASE/spring-expression-4.2.9.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-jdbc:4.2.9.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jdbc/4.2.9.RELEASE/spring-jdbc-4.2.9.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jdbc/4.2.9.RELEASE/spring-jdbc-4.2.9.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jdbc/4.2.9.RELEASE/spring-jdbc-4.2.9.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-test:4.2.9.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-test/4.2.9.RELEASE/spring-test-4.2.9.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-test/4.2.9.RELEASE/spring-test-4.2.9.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-test/4.2.9.RELEASE/spring-test-4.2.9.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-tx:4.2.9.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-tx/4.2.9.RELEASE/spring-tx-4.2.9.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-tx/4.2.9.RELEASE/spring-tx-4.2.9.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-tx/4.2.9.RELEASE/spring-tx-4.2.9.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-web:4.2.9.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-web/4.2.9.RELEASE/spring-web-4.2.9.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-web/4.2.9.RELEASE/spring-web-4.2.9.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-web/4.2.9.RELEASE/spring-web-4.2.9.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-webmvc:4.2.9.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-webmvc/4.2.9.RELEASE/spring-webmvc-4.2.9.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-webmvc/4.2.9.RELEASE/spring-webmvc-4.2.9.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-webmvc/4.2.9.RELEASE/spring-webmvc-4.2.9.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: taglibs:standard:1.1.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/taglibs/standard/1.1.2/standard-1.1.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/taglibs/standard/1.1.2/standard-1.1.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/taglibs/standard/1.1.2/standard-1.1.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="FrameworkDetectionExcludesConfiguration">
<file type="web" url="file://$PROJECT_DIR$" />
</component>
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/SSM_HRMS.iml" filepath="$PROJECT_DIR$/SSM_HRMS.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?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>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
\ No newline at end of file
此差异已折叠。
# whjiao0829.github.io
hello ,the time is 2017-10-25.
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="web" name="Web">
<configuration>
<descriptors>
<deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/src/main/webapp/WEB-INF/web.xml" />
</descriptors>
<webroots>
<root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
</webroots>
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:4.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:4.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:4.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: aopalliance:aopalliance:1.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:4.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:4.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:4.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:4.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:3.1.14" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.4.1" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.3.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet.jsp:jsp-api:2.1" level="project" />
<orderEntry type="library" name="Maven: javax.servlet:jstl:1.2" level="project" />
<orderEntry type="library" name="Maven: taglibs:standard:1.1.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.11" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.10" level="project" />
<orderEntry type="library" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-test:4.2.9.RELEASE" level="project" />
</component>
</module>
\ No newline at end of file
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>SSM_HRMS</groupId>
<artifactId>SSM_HRMS</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>SSM_HRMS Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<!--Spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.2.9.RELEASE</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>3.1.14</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
<!-- jsp -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<!-- servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- json -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.11</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.2.9.RELEASE</version>
</dependency>
</dependencies>
<build>
<finalName>SSM_HRMS</finalName>
<plugins>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.5.v20170502</version>
</plugin>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
package com.hrms.bean;
/**
* @author GenshenWang.nomico
* @date 2018/3/5.
*/
public class Department {
private Integer deptId;
private String deptLeader;
private String deptName;
public Integer getDeptId() {
return deptId;
}
public void setDeptId(Integer deptId) {
this.deptId = deptId;
}
public String getDeptLeader() {
return deptLeader;
}
public void setDeptLeader(String deptLeader) {
this.deptLeader = deptLeader;
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
public Department() {
}
public Department(Integer deptId, String deptLeader, String deptName) {
this.deptId = deptId;
this.deptLeader = deptLeader;
this.deptName = deptName;
}
@Override
public String toString() {
return "Department{" +
"deptId=" + deptId +
", deptLeader='" + deptLeader + '\'' +
", deptName='" + deptName + '\'' +
'}';
}
}
package com.hrms.bean;
/**
* @author GenshenWang.nomico
* @date 2018/3/5.
*/
public class Employee {
private Integer empId;
private String empName;
private String empEmail;
private String gender;
private Integer departmentId;
private Department department;
public Integer getEmpId() {
return empId;
}
public void setEmpId(Integer empId) {
this.empId = empId;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public String getEmpEmail() {
return empEmail;
}
public void setEmpEmail(String empEmail) {
this.empEmail = empEmail;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public Integer getDepartmentId() {
return departmentId;
}
public void setDepartmentId(Integer departmentId) {
this.departmentId = departmentId;
}
@Override
public String toString() {
return "Employee{" +
"empId=" + empId +
", empName='" + empName + '\'' +
", empEmail='" + empEmail + '\'' +
", gender='" + gender + '\'' +
", departmentId=" + departmentId + '\'' +
", department=" + department +
'}';
}
public Employee() {
}
public Employee(Integer empId, String empName, String empEmail, String gender, Integer departmentId) {
this.empId = empId;
this.empName = empName;
this.empEmail = empEmail;
this.gender = gender;
this.departmentId = departmentId;
}
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
}
package com.hrms.controller;
import com.hrms.bean.Department;
import com.hrms.service.DepartmentService;
import com.hrms.util.JsonMsg;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
/**
* @author GenshenWang.nomico
* @date 2018/3/8.
*/
@Controller
@RequestMapping(value = "/hrms/dept")
public class DepartmentController {
@Autowired
DepartmentService departmentService;
/**
* 删除
* @param deptId
* @return
*/
@RequestMapping(value = "/delDept/{deptId}", method = RequestMethod.DELETE)
@ResponseBody
public JsonMsg deleteDept(@PathVariable("deptId") Integer deptId){
int res = 0;
if (deptId > 0){
res = departmentService.deleteDeptById(deptId);
}
if (res != 1){
return JsonMsg.fail().addInfo("del_dept_error", "删除异常");
}
return JsonMsg.success();
}
/**
* 部门更改
* @param deptId
* @param department
* @return
*/
@RequestMapping(value = "/updateDept/{deptId}", method = RequestMethod.PUT)
@ResponseBody
public JsonMsg updateDeptById(@PathVariable("deptId") Integer deptId, Department department){
int res = 0;
if (deptId > 0){
res = departmentService.updateDeptById(deptId, department);
}
if (res != 1){
return JsonMsg.fail().addInfo("update_dept_error", "部门更新失败");
}
return JsonMsg.success();
}
/**
* 新增部门
* @param department
* @return
*/
@RequestMapping(value = "/addDept", method = RequestMethod.PUT)
@ResponseBody
public JsonMsg addDept(Department department){
int res = departmentService.addDept(department);
if (res != 1){
return JsonMsg.fail().addInfo("add_dept_error", "添加异常!");
}
return JsonMsg.success();
}
/**
* 查询部门信息总页码数
* @return
*/
@RequestMapping(value = "/getTotalPages", method = RequestMethod.GET)
@ResponseBody
public JsonMsg getTotalPages(){
//每页显示的记录行数
int limit = 5;
//总记录数
int totalItems = departmentService.getDeptCount();
int temp = totalItems / limit;
int totalPages = (totalItems % limit== 0) ? temp : temp+1;
return JsonMsg.success().addInfo("totalPages", totalPages);
}
/**
*
*/
@RequestMapping(value = "/getDeptById/{deptId}", method = RequestMethod.GET)
@ResponseBody
public JsonMsg getDeptById(@PathVariable("deptId") Integer deptId){
Department department = null;
if (deptId > 0){
department = departmentService.getDeptById(deptId);
}
if (department != null){
return JsonMsg.success().addInfo("department", department);
}
return JsonMsg.fail().addInfo("get_dept_error", "无部门信息");
}
/**
* 分页查询:返回指定页数对应的数据
* @param pageNo
* @return
*/
@RequestMapping(value = "/getDeptList", method = RequestMethod.GET)
public ModelAndView getDeptList(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo){
ModelAndView mv = new ModelAndView("departmentPage");
//每页显示的记录行数
int limit = 5;
//总记录数
int totalItems = departmentService.getDeptCount();
int temp = totalItems / limit;
int totalPages = (totalItems % limit== 0) ? temp : temp+1;
//每页的起始行(offset+1)数据,如第一页(offset=0,从第1(offset+1)行数据开始)
int offset = (pageNo - 1)*limit;
List<Department> departments = departmentService.getDeptList(offset, limit);
mv.addObject("departments", departments)
.addObject("totalItems", totalItems)
.addObject("totalPages", totalPages)
.addObject("curPageNo", pageNo);
return mv;
}
/**
* 查询所有部门名称
* @return
*/
@RequestMapping(value = "/getDeptName", method = RequestMethod.GET)
@ResponseBody
public JsonMsg getDeptName(){
List<Department> departmentList = departmentService.getDeptName();
if (departmentList != null){
return JsonMsg.success().addInfo("departmentList", departmentList);
}
return JsonMsg.fail();
}
}
package com.hrms.controller;
import com.hrms.bean.Employee;
import com.hrms.service.EmployeeService;
import com.hrms.util.JsonMsg;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
/**
* @author GenshenWang.nomico
* @date 2018/3/7.
*/
@Controller
@RequestMapping(value = "/hrms/emp")
public class EmployeeController {
@Autowired
EmployeeService employeeService;
/**
* 员工删除操作
* @param empId
* @return
*/
@RequestMapping(value = "/deleteEmp/{empId}", method = RequestMethod.DELETE)
@ResponseBody
public JsonMsg deleteEmp(@PathVariable("empId") Integer empId){
int res = 0;
if (empId > 0){
res = employeeService.deleteEmpById(empId);
}
if (res != 1){
return JsonMsg.fail().addInfo("emp_del_error", "员工删除异常");
}
return JsonMsg.success();
}
/**
* 更改员工信息
* @param empId
* @param employee
* @return
*/
@RequestMapping(value ="/updateEmp/{empId}", method = RequestMethod.PUT)
@ResponseBody
public JsonMsg updateEmp(@PathVariable("empId") Integer empId, Employee employee){
int res = employeeService.updateEmpById(empId, employee);
if (res != 1){
return JsonMsg.fail().addInfo("emp_update_error", "更改异常");
}
return JsonMsg.success();
}
/**
* 查询输入的员工姓名是否重复
* @param empName
* @return
*/
@RequestMapping(value = "/checkEmpExists", method = RequestMethod.GET)
@ResponseBody
public JsonMsg checkEmpExists(@RequestParam("empName") String empName){
//对输入的姓名与邮箱格式进行验证
String regName = "(^[a-zA-Z0-9_-]{3,16}$)|(^[\\u2E80-\\u9FFF]{2,5})";
if(!empName.matches(regName)){
return JsonMsg.fail().addInfo("name_reg_error", "输入姓名为2-5位中文或6-16位英文和数字组合");
}
Employee employee = employeeService.getEmpByName(empName);
if (employee != null){
return JsonMsg.fail().addInfo("name_reg_error", "用户名重复");
}else {
return JsonMsg.success();
}
}
/**
* 新增记录后,查询最新的页数
* @return
*/
@RequestMapping(value = "/getTotalPages", method = RequestMethod.GET)
@ResponseBody
public JsonMsg getTotalPage(){
int totalItems = employeeService.getEmpCount();
//获取总的页数
int temp = totalItems / 5;
int totalPages = (totalItems % 5 == 0) ? temp : temp+1;
return JsonMsg.success().addInfo("totalPages", totalPages);
}
/**
* 新增员工
* @param employee 新增的员工信息
* @return
*/
@RequestMapping(value = "/addEmp", method = RequestMethod.POST)
@ResponseBody
public JsonMsg addEmp(Employee employee){
int res = employeeService.addEmp(employee);
if (res == 1){
return JsonMsg.success();
}else {
return JsonMsg.fail();
}
}
/**
* 根据id查询员工信息
* @param empId
* @return
*/
@RequestMapping(value = "/getEmpById/{empId}", method = RequestMethod.GET)
@ResponseBody
public JsonMsg getEmpById(@PathVariable("empId") Integer empId){
Employee employee = employeeService.getEmpById(empId);
if (employee != null){
return JsonMsg.success().addInfo("employee", employee);
}else {
return JsonMsg.fail();
}
}
/**
* 查询
* @param pageNo 查询指定页码包含的数据
* @return
*/
@RequestMapping(value = "/getEmpList", method = RequestMethod.GET)
public ModelAndView getEmp(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo){
ModelAndView mv = new ModelAndView("employeePage");
int limit = 5;
// 记录的偏移量(即从第offset行记录开始查询),
// 如第1页是从第1行(offset=(21-1)*5=0,offset+1=0+1=1)开始查询;
// 第2页从第6行(offset=(2-1)*5=5,offset+1=5+1=6)记录开始查询
int offset = (pageNo-1)*limit;
//获取指定页数包含的员工信息
List<Employee> employees = employeeService.getEmpList(offset, limit);
//获取总的记录数
int totalItems = employeeService.getEmpCount();
//获取总的页数
int temp = totalItems / limit;
int totalPages = (totalItems % limit == 0) ? temp : temp+1;
//当前页数
int curPage = pageNo;
//将上述查询结果放到Model中,在JSP页面中可以进行展示
mv.addObject("employees", employees)
.addObject("totalItems", totalItems)
.addObject("totalPages", totalPages)
.addObject("curPage", curPage);
return mv;
}
}
package com.hrms.controller;
import com.hrms.util.JsonMsg;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
/**
* @author GenshenWang.nomico
* @date 2018/3/9.
*/
@Controller
@RequestMapping(value = "/hrms")
public class LoginController {
/**
* 登录:跳转到登录页面
* @return
*/
@RequestMapping(value = "/login", method = RequestMethod.GET)
public String login(){
return "login";
}
/**
* 对登录页面输入的用户名和密码做简单的判断
* @param request
* @return
*/
@RequestMapping(value = "/dologin", method = RequestMethod.POST)
@ResponseBody
public JsonMsg dologin(HttpServletRequest request){
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username + password);
if (!"admin1234".equals(username + password)){
return JsonMsg.fail().addInfo("login_error", "输入账号用户名与密码不匹配,请重新输入!");
}
return JsonMsg.success();
}
/**
* 跳转到主页面
* @return
*/
@RequestMapping(value = "/main", method = RequestMethod.GET)
public String main(){
return "main";
}
/**
* 退出登录:从主页面跳转到登录页面
* @return
*/
@RequestMapping(value = "/logout", method = RequestMethod.GET)
public String logout(){
return "login";
}
}
package com.hrms.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* @author GenshenWang.nomico
* @date 2018/3/7.
*/
@Controller
@RequestMapping(value = "/hrms")
public class MainController {
}
package com.hrms.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* @author GenshenWang.nomico
* @date 2018/3/2.
*/
@Controller
public class TestController {
@RequestMapping(value = "/test", method = RequestMethod.GET)
public String index(){
System.out.println("测试。。。");
return "main";
}
}
package com.hrms.mapper;
import com.hrms.bean.Department;
import org.apache.ibatis.annotations.*;
import java.util.List;
/**
* @author GenshenWang.nomico
* @date 2018/3/5.
*/
public interface DepartmentMapper {
String TABLE_NAME = "tbl_dept";
String INSERT_FIELDS = "dept_name, dept_leader";
String SELECT_FIELDS = "dept_id as 'deptId', " +
"dept_name as 'deptName', " +
"dept_leader as 'deptLeader'";
/**
* =================================删除============================================
*/
@Delete({"DELETE FROM", TABLE_NAME, "WHERE dept_id=#{deptId}"})
int deleteDeptById(@Param("deptId") Integer deptId);
/**
* =================================更改============================================
*/
int updateDeptById(@Param("deptId") Integer deptId,
@Param("department") Department department);
/**
* =================================新增============================================
*/
@Insert({"INSERT INTO",TABLE_NAME, "(", INSERT_FIELDS ,") " +
"VALUES(#{department.deptName}, #{department.deptLeader})" })
int insertDept(@Param("department") Department department);
/**
* =================================查询============================================
*/
@Select({"SELECT", SELECT_FIELDS, "FROM", TABLE_NAME, "WHERE dept_id=#{deptId}" })
Department selectOneById(@Param("deptId") Integer deptId);
@Select({"SELECT", SELECT_FIELDS, "FROM", TABLE_NAME, "WHERE dept_leader=#{deptLeader}" })
Department selectOneByLeader(@Param("deptLeader") String deptLeader);
@Select({"SELECT", SELECT_FIELDS, "FROM", TABLE_NAME, "WHERE dept_name=#{deptName}" })
Department selectOneByName(@Param("deptName") String deptName);
@Select({"SELECT", SELECT_FIELDS, "FROM", TABLE_NAME})
List<Department> selectDeptList();
List<Department> selectDeptsByLimitAndOffset(@Param("offset") Integer offset,
@Param("limit") Integer limit);
@Select({"SELECT COUNT(dept_id) FROM", TABLE_NAME,
"WHERE deptLeader = #{deptLeader} OR deptName = #{deptName}"})
int checkDeptsExistsByNameAndleader(@Param("deptLeader") String deptLeader,
@Param("deptName") String deptName);
@Select({"SELECT COUNT(*) FROM", TABLE_NAME})
int countDepts();
}
package com.hrms.mapper;
import com.hrms.bean.Employee;
import org.apache.ibatis.annotations.*;
import java.util.List;
/**
* @author GenshenWang.nomico
* @date 2018/3/5.
*/
public interface EmployeeMapper {
String TABLE_NAME = "tbl_emp";
String INSERT_FIELDS = "emp_name, emp_email, gender, department_id";
String SELECT_FIELDS = "emp_id, " + INSERT_FIELDS;
/**
* ================================= 删除 ============================================
*/
@Delete({"DELETE FROM", TABLE_NAME, "WHERE emp_id = #{empId}"})
int deleteOneById(@Param("empId") Integer empId);
/**
* ================================= 修改 ============================================
*/
int updateOneById(@Param("empId") Integer empId,
@Param("employee") Employee employee);
/**
* =================================新增============================================
*/
@Insert({"INSERT INTO", TABLE_NAME, "(",INSERT_FIELDS,") " +
"VALUES(#{empName}, " +
"#{empEmail}, " +
"#{gender}, " +
"#{departmentId})"})
int insertOne(Employee employee);
/**
* =================================查询============================================
*/
Employee selectOneById(@Param("empId") int empId);
Employee selectOneByName(@Param("empName") String empName);
//查询带有部门信息的Employee
Employee selectWithDeptById(@Param("empId") Integer empId);
/**
* 分页查询
* @param limit 返回记录最大行数
* @param offset 返回记录行的偏移量
* @return 如offset=10,limit=5的时候,就会从数据库第11行记录开始返回5条查询结果,即范围从(offset+1)---(offset+limit)
*/
List<Employee> selectByLimitAndOffset(@Param("offset") Integer offset,
@Param("limit") Integer limit);
/**
* 查询总记录数
* @return
*/
@Select({"select count(*) from", TABLE_NAME})
int countEmps();
}
package com.hrms.service;
import com.hrms.bean.Department;
import com.hrms.mapper.DepartmentMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author GenshenWang.nomico
* @date 2018/3/8.
*/
@Service
public class DepartmentService {
@Autowired
DepartmentMapper departmentMapper;
public int deleteDeptById(Integer deptId){
return departmentMapper.deleteDeptById(deptId);
}
public int updateDeptById(Integer deptId, Department department){
return departmentMapper.updateDeptById(deptId, department);
}
public int addDept(Department department){
return departmentMapper.insertDept(department);
}
public int getDeptCount(){
return departmentMapper.countDepts();
}
public List<Department> getDeptList(Integer offset, Integer limit){
return departmentMapper.selectDeptsByLimitAndOffset(offset, limit);
};
public Department getDeptById(Integer deptId){
return departmentMapper.selectOneById(deptId);
}
public Department getDeptByName(String deptName){
return departmentMapper.selectOneByName(deptName);
}
public List<Department> getDeptName(){
return departmentMapper.selectDeptList();
}
}
package com.hrms.service;
import com.hrms.bean.Employee;
import com.hrms.mapper.EmployeeMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author GenshenWang.nomico
* @date 2018/3/7.
*/
@Service
public class EmployeeService {
@Autowired
EmployeeMapper employeeMapper;
public int getEmpCount(){
return employeeMapper.countEmps();
}
public List<Employee> getEmpList(Integer offser, Integer limit){
return employeeMapper.selectByLimitAndOffset(offser, limit);
}
public Employee getEmpById(Integer empId){
return employeeMapper.selectOneById(empId);
}
public Employee getEmpByName(String empName){return employeeMapper.selectOneByName(empName);};
public int updateEmpById(Integer empId, Employee employee){return employeeMapper.updateOneById(empId, employee);}
public int deleteEmpById(Integer empId){
return employeeMapper.deleteOneById(empId);
}
public int addEmp(Employee employee){
return employeeMapper.insertOne(employee);
}
}
import com.hrms.bean.Department;
import com.hrms.mapper.DepartmentMapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.List;
/**
* @author GenshenWang.nomico
* @date 2018/3/5.
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext.xml", "classpath:springmvc.xml"})
public class DepartmentMapperTest {
@Autowired
private DepartmentMapper departmentMapper;
@Test
public void insertDeptTest(){
Department department = new Department(null, "黎明3", "测试部");
int res = departmentMapper.insertDept(department);
System.out.println(res);
}
@Test
public void updateDeptTest(){
Department department = new Department(null, "Tomsom", "研发部");
int res = departmentMapper.updateDeptById(1, department);
System.out.println(res);
}
@Test
public void deleteDeptTest(){
int res = departmentMapper.deleteDeptById(7);
System.out.println(res);
}
@Test
public void selectOneByIdTest(){
Department department = departmentMapper.selectOneById(1);
System.out.println(department);
}
@Test
public void selectOneByLeaderTest(){
Department department = departmentMapper.selectOneByLeader("马云");
System.out.println(department);
}
@Test
public void selectOneByNameTest(){
Department department = departmentMapper.selectOneByName("CEO");
System.out.println(department);
}
@Test
public void selectDeptListTest(){
List<Department> departmentList = departmentMapper.selectDeptList();
for (int i = 0; i < departmentList.size(); i++) {
System.out.println(departmentList.get(i));
}
}
@Test
public void selectDeptsByLimitAndOffsetTest(){
List<Department> departments = departmentMapper.selectDeptsByLimitAndOffset(2,5);
System.out.println(departments.size());
for (int i = 0; i < departments.size(); i++) {
System.out.println(departments.get(i));
}
}
@Test
public void countDeptsTest(){
int count = departmentMapper.countDepts();
System.out.println(count);
}
}
package com.hrms.test;
import com.hrms.bean.Employee;
import com.hrms.mapper.EmployeeMapper;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.List;
import java.util.UUID;
/**
* @author GenshenWang.nomico
* @date 2018/3/5.
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext.xml", "classpath:springmvc.xml"})
public class EmployeeMapperTest {
@Autowired
EmployeeMapper employeeMapper;
//用来批量插入操作
@Autowired
SqlSession sqlSession;
/**
* 单条记录插入
*/
@Test
public void insertOneTest(){
Employee employee = new Employee(1, "aa", "aa@qq.com", "男", 2);
int res = employeeMapper.insertOne(employee);
System.out.println(res);
}
/**
* 批量插入
*/
@Test
public void insertEmpsBatchTest(){
EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class);
for (int i = 1; i < 200; i++) {
String uid = UUID.randomUUID().toString().substring(0, 5);
employeeMapper.insertOne(new Employee(i, "name_"+uid, uid+"@qq.com", i%2==0? "F":"M", i%6+1));
}
}
@Test
public void updateOneByIdTest(){
Employee employee =
new Employee(1, "aa", "aa@qq.com", "女", 3);
int res = employeeMapper.updateOneById(1, employee);
System.out.println(res);
}
@Test
public void selectOneByIdTest(){
Employee employee = employeeMapper.selectOneById(1);
System.out.println(employee);
}
@Test
public void selectOneByNameTest(){
Employee employee = employeeMapper.selectOneByName("name_65083");
System.out.println(employee);
}
@Test
public void selectWithDeptByIdTest(){
Employee employee = employeeMapper.selectWithDeptById(2);
System.out.println(employee);
}
@Test
public void countEmpsTest(){
System.out.println(employeeMapper.countEmps());
}
@Test
public void selectByLimitAndOffsetTest(){
List<Employee> list = employeeMapper.selectByLimitAndOffset(5, 10);
System.out.println(list.size());
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
@Test
public void deleteOneByIdTest(){
int res = employeeMapper.deleteOneById(201);
System.out.println(res);
}
}
package com.hrms.util;
import java.util.HashMap;
import java.util.Map;
/**
* @author GenshenWang.nomico
* @date 2018/3/7.
*/
public class JsonMsg {
private int code;
private String msg;
private Map<String, Object> extendInfo = new HashMap<>();
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Map<String, Object> getExtendInfo() {
return extendInfo;
}
public void setExtendInfo(Map<String, Object> extendInfo) {
this.extendInfo = extendInfo;
}
public static JsonMsg success(){
JsonMsg res = new JsonMsg();
res.setCode(100);
res.setMsg("操作成功!");
return res;
}
public static JsonMsg fail(){
JsonMsg res = new JsonMsg();
res.setCode(200);
res.setMsg("操作失败!");
return res;
}
public JsonMsg addInfo(String key, Object obj){
this.extendInfo.put(key, obj);
return this;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 1. 数据源 : DriverManagerDataSource -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/ssm_hrms?useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="920614"/>
</bean>
<!--
2. 配置和MyBatis的整合
-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 配置一个可以执行批量的sqlSession -->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
<constructor-arg name="executorType" value="BATCH"/>
</bean>
<!-- 3. mybatis自动扫描加载Sql映射文件 : MapperScannerConfigurer -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
<property name="basePackage" value="com.hrms.mapper" />
</bean>
</beans>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.hrms">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"></context:exclude-filter>
</context:component-scan>
<import resource="MyBatis.xml"/>
</beans>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.hrms.mapper.DepartmentMapper">
<sql id="table_name">
tbl_dept
</sql>
<sql id="select_fields">
dept_id , dept_name, dept_leader
</sql>
<resultMap id="deptResult" type="com.hrms.bean.Department">
<id column="dept_id" property="deptId"></id>
<result column="dept_name" property="deptName"></result>
<result column="dept_leader" property="deptLeader"></result>
</resultMap>
<select id="selectDeptsByLimitAndOffset" resultMap="deptResult">
SELECT
dept_id as 'deptId', dept_name as 'deptName', dept_leader as 'deptLeader'
FROM
<include refid="table_name"></include>
LIMIT #{offset}, #{limit}
</select>
<update id="updateDeptById" parameterType="com.hrms.bean.Department">
UPDATE
<include refid="table_name"></include>
SET
dept_name = #{department.deptName, jdbcType = VARCHAR},
dept_leader = #{department.deptLeader, jdbcType = VARCHAR}
WHERE
dept_id = #{deptId}
</update>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.hrms.mapper.EmployeeMapper">
<sql id="table_name">tbl_emp</sql>
<sql id="select_fields">
emp_id, emp_name, emp_email, gender, department_id
</sql>
<sql id="select_withdept_fields">
emp_id, emp_name, emp_email, gender, department_id, dept_id, dept_leader, dept_name
</sql>
<resultMap id="withDeptResultMap" type="com.hrms.bean.Employee">
<id column="emp_id" property="empId"></id>
<result column="emp_name" property="empName"></result>
<result column="emp_email" property="empEmail"></result>
<result column="gender" property="gender"></result>
<result column="department_id" property="departmentId"></result>
<association property="department" column="department_id" javaType="com.hrms.bean.Department">
<id column="dept_id" property="deptId"></id>
<result column="dept_leader" property="deptLeader"></result>
<result column="dept_name" property="deptName"></result>
</association>
</resultMap>
<select id="selectOneById" parameterType="java.lang.Integer" resultType="com.hrms.bean.Employee">
SELECT
emp_id empId, emp_name empName, emp_email empEmail, gender, department_id departmentId
FROM
<include refid="table_name"/>
WHERE
emp_id = #{empId}
</select>
<select id="selectOneByName" parameterType="String" resultType="com.hrms.bean.Employee">
SELECT
emp_id empId, emp_name empName, emp_email empEmail, gender, department_id departmentId
FROM
<include refid="table_name"/>
WHERE
emp_name = #{empName}
</select>
<select id="selectWithDeptById" parameterType="Integer" resultMap="withDeptResultMap">
SELECT
<include refid="select_withdept_fields"/>
FROM
tbl_emp e, tbl_dept d
WHERE
e.department_id = d.dept_id
AND
e.emp_id = #{empId}
</select>
<select id="selectByLimitAndOffset" resultMap="withDeptResultMap">
SELECT
<include refid="select_withdept_fields"></include>
FROM
tbl_emp e
LEFT JOIN
tbl_dept d
ON
e.department_id = d.dept_id
ORDER BY e.emp_id
LIMIT #{offset}, #{limit}
</select>
<update id="updateOneById" parameterType="com.hrms.bean.Employee">
UPDATE
<include refid="table_name"/>
SET
emp_email = #{employee.empEmail, jdbcType = VARCHAR},
gender = #{employee.gender, jdbcType = VARCHAR},
department_id = #{employee.departmentId, jdbcType = INTEGER}
WHERE
emp_id = #{empId, jdbcType = INTEGER}
</update>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--开启注解-->
<mvc:annotation-driven/>
<!--处理静态资源-->
<mvc:default-servlet-handler/>
<context:component-scan base-package="com.hrms.controller"/>
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
\ No newline at end of file
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Foot Page</title>
</head>
<body>
<div class="hrms_footer" style="text-align: center;">
<address>
<strong>Copyright&copy;XXX公司.Inc</strong><br>
徐汇区民润大厦五层<br>
<abbr title="Phone">P:</abbr> (123) 456-7890
</address>
</div><!-- /.hrms_footer -->
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<title>Head Page</title>
<!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- 可选的 Bootstrap 主题文件(一般不用引入) -->
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
</head>
<body>
<div class="hrms_brand_nav">
<nav class="navbar navbar-inverse navbar-static-top">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#hrms-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" id="company_logo" href="#">XXX公司LOGO</a>
</div>
<div class="collapse navbar-collapse" id="hrms-navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="active">
<a href="#">公司介绍 <span class="sr-only">(current)</span> </a>
</li>
<li><a href="#">人力资源部</a></li>
<li><a href="#">请假申请</a></li>
<li><a href="#">报销申请</a></li>
<li><a href="#">出勤记录</a></li>
</ul>
<form class="navbar-form navbar-left">
<div class="form-group">
<input type="text" class="form-control" placeholder="站内搜索">
</div>
<button type="submit" class="btn btn-default">搜索</button>
</form>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">账号管理 <span class="caret"></span></a>
<ul class="dropdown-menu nav nav-pills nav-stacked">
<li class="active"><a href="#"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> 修改信息</a></li>
<li><a href="#"><span class="glyphicon glyphicon-user" aria-hidden="true"></span> 头像更换</a></li>
<li><a href="#" class="hrms_logout"><span class="glyphicon glyphicon-off" aria-hidden="true"></span> 账号退出</a></li>
</ul>
</li>
</ul><!-- /.nav navbar-nav navbar-right -->
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
</div><!-- /.hrms_brand_nav -->
<script type="text/javascript">
//主页面
$("#company_logo").click(function () {
$(this).attr("href", "/hrms/main");
});
//账号退出
$(".hrms_logout").click(function () {
window.location.href = "/hrms/logout";
});
</script>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<div class="panel-group col-sm-2" id="hrms_sidebar_left" role="tablist" aria-multiselectable="true">
<ul class="nav nav-pills nav-stacked emp_sidebar">
<li role="presentation" class="active">
<a href="#" data-toggle="collapse" data-target="#collapse_emp">
<span class="glyphicon glyphicon-user" aria-hidden="true">员工管理</span>
</a>
<ul class="nav nav-pills nav-stacked" id="collapse_emp">
<li role="presentation"><a href="#" class="emp_info">员工信息</a></li>
<li role="presentation"><a href="#" role="button" class="emp_add_btn" data-toggle="modal" data-target=".emp-add-modal">员工新增</a></li>
<li role="presentation"><a href="#" class="emp_clearall_btn">员工清零</a></li>
</ul>
</li>
</ul>
<ul class="nav nav-pills nav-stacked dept_sidebar">
<li role="presentation" class="active">
<a href="#" data-toggle="collapse" data-target="#collapse_dept">
<span class="glyphicon glyphicon-cloud" aria-hidden="true">部门管理</span>
</a>
<ul class="nav nav-pills nav-stacked" id="collapse_dept">
<li role="presentation"><a href="#" class="dept_info">部门信息</a></li>
<li role="presentation"><a href="#" class="dept_add_btn" data-toggle="modal" data-target=".dept-add-modal">部门新增</a></li>
<li role="presentation"><a href="#" class="dept_clearall_btn">部门清零</a></li>
</ul>
</li>
</ul>
</div><!-- /.panel-group,#hrms_sidebar_left -->
<script type="text/javascript">
//跳转到员工页面
$(".emp_info").click(function () {
$(this).attr("href", "/hrms/emp/getEmpList");
});
//跳转到部门页面
$(".dept_info").click(function () {
$(this).attr("href", "/hrms/dept/getDeptList");
});
//员工清零这个功能暂未实现
$(".emp_clearall_btn").click(function () {
alert("对不起,您暂无权限进行操作!请先获取权限");
});
//部门清零这个功能暂未实现
$(".dept_clearall_btn").click(function () {
alert("对不起,您暂无权限进行操作!请先获取权限");
});
</script>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<html>
<head>
<title>部门新增页面</title>
</head>
<body>
<div class="modal fade dept-add-modal" tabindex="-1" role="dialog" aria-labelledby="dept-add-modal">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">部门新增</h4>
</div>
<div class="modal-body">
<form class="form-horizontal add_dept_form">
<div class="form-group">
<label for="add_deptName" class="col-sm-2 control-label">部门名称</label>
<div class="col-sm-8">
<input type="text" name="deptName" class="form-control" id="add_deptName" placeholder="人事部">
</div>
</div>
<div class="form-group">
<label for="add_deptLeader" class="col-sm-2 control-label">部门老大</label>
<div class="col-sm-8">
<input type="text" name="deptLeader" class="form-control" id="add_deptLeader" placeholder="XXX">
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary dept_save_btn">保存</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<script type="text/javascript">
<!-- ==========================部门新增操作=================================== -->
// 为简单操作,省去了输入名称的验证、错误信息提示等操作
//1 点击部门新增按钮,弹出模态框;
//2 输入新增部门信息,点击保存按钮,发送AJAX请求到后台进行保存;
//3 保存成功跳转最后一页
$(".dept_add_btn").click(function () {
$('.dept-add-modal').modal({
backdrop:static,
keyboard:true
});
});
$(".dept_save_btn").click(function () {
var deptName = $("#add_deptName").val();
var deptLeader = $("#add_deptLeader").val();
//验证省略...
$.ajax({
url:"/hrms/dept/addDept",
type:"PUT",
data:$(".add_dept_form").serialize(),
success:function (result) {
if(result.code == 100){
alert("新增成功");
$('.dept-add-modal').modal("hide");
$.ajax({
url:"/hrms/dept/getTotalPages",
type:"GET",
success:function (result) {
if (result.code == 100){
var totalPage = result.extendInfo.totalPages;
window.location.href="/hrms/dept/getDeptList?pageNo="+totalPage;
}
}
});
}else {
alert(result.extendInfo.add_dept_error);
}
}
});
});
</script>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>部门管理页面</title>
</head>
<body>
<div class="hrms_dept_container">
<!-- 导航栏-->
<%@ include file="./commom/head.jsp"%>
<!-- 中间部分(左侧栏+表格内容) -->
<div class="hrms_dept_body">
<!-- 左侧栏 -->
<%@ include file="./commom/leftsidebar.jsp"%>
<!-- 部门表格内容 -->
<div class="dept_info col-sm-10">
<div class="panel panel-success">
<!-- 路径导航 -->
<div class="panel-heading">
<ol class="breadcrumb">
<li><a href="#">部门管理</a></li>
<li class="active">部门信息</li>
</ol>
</div>
<!-- Table -->
<table class="table table-bordered table-hover" id="dept_table">
<thead>
<th>部门编号</th>
<th>部门名称</th>
<th>部门老大</th>
<th>操作</th>
</thead>
<tbody>
<c:forEach items="${departments}" var="dept">
<tr>
<td>${dept.deptId}</td>
<td>${dept.deptName}</td>
<td>${dept.deptLeader}</td>
<td>
<a href="#" role="button" class="btn btn-primary dept_edit_btn" data-toggle="modal" data-target=".dept-update-modal">编辑</a>
<a href="#" role="button" class="btn btn-danger dept_delete_btn">删除</a>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<div class="panel-body">
<div class="table_items">
当前第<span class="badge">${curPageNo}</span>页,共有<span class="badge">${totalPages}</span>页,总记录数<span class="badge">${totalItems}</span>条。
</div>
<nav aria-label="Page navigation" class="pull-right">
<ul class="pagination">
<li><a href="/hrms/dept/getDeptList?pageNo=1">首页</a></li>
<c:if test="${curPageNo==1}">
<li class="disabled">
<a href="#" aria-label="Previous" class="prePage">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
</c:if>
<c:if test="${curPageNo!=1}">
<li>
<a href="#" aria-label="Previous" class="prePage">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
</c:if>
<c:forEach begin="1" end="${totalPages<5?totalPages:5}" step="1" var="itemPage">
<c:if test="${curPageNo == itemPage}">
<li class="active"><a href="/hrms/dept/getDeptList?pageNo=${itemPage}">${itemPage}</a></li>
</c:if>
<c:if test="${curPageNo != itemPage}">
<li><a href="/hrms/dept/getDeptList?pageNo=${itemPage}">${itemPage}</a></li>
</c:if>
</c:forEach>
<c:if test="${curPageNo==totalPages}">
<li class="disabled" class="nextPage">
<a href="#" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</c:if>
<c:if test="${curPageNo!=totalPages}">
<li>
<a href="#" aria-label="Next" class="nextPage">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</c:if>
<li><a href="/hrms/dept/getDeptList?pageNo=${totalPages}">尾页</a></li>
</ul>
</nav>
</div>
</div><!-- /.panel panel-success -->
</div><!-- /.dept_info -->
</div><!-- /.hrms_dept_body -->
<%@ include file="departmentAdd.jsp"%>
<%@ include file="departmentUpdate.jsp"%>
<!-- 尾部-->
<%@ include file="./commom/foot.jsp"%>
</div><!-- /.hrms_dept_container -->
<script type="text/javascript">
var curPageNo = ${curPageNo};
var totalPages = ${totalPages};
//上一页
$(".prePage").click(function () {
if (curPageNo > 1){
var pageNo = curPageNo - 1;
$(this).attr("href", "/hrms/dept/getDeptList?pageNo="+pageNo);
}
});
//下一页
$(".nextPage").click(function () {
if (curPageNo < totalPages){
var pageNo = curPageNo + 1;
$(this).attr("href", "/hrms/dept/getDeptList?pageNo="+pageNo);
}
});
<!-- ==========================部门删除操作=================================== -->
$(".dept_delete_btn").click(function () {
var delDeptId = $(this).parent().parent().find("td:eq(0)").text();
var delDeptName = $(this).parent().parent().find("td:eq(1)").text();
var curPageNo = ${curPageNo};
if (confirm("确认删除【"+ delDeptName +"】的信息吗?")){
$.ajax({
url:"/hrms/dept/delDept/"+delDeptId,
type:"DELETE",
success:function (result) {
if (result.code == 100){
alert("删除成功!");
window.location.href = "/hrms/dept/getDeptList?pageNo="+curPageNo;
}else {
alert(result.extendInfo.del_dept_error);
}
}
});
}
});
</script>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>部门更改页面</title>
</head>
<body>
<div class="modal fade dept-update-modal" tabindex="-1" role="dialog" aria-labelledby="dept-update-modal">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">部门更改</h4>
</div>
<div class="modal-body">
<form class="form-horizontal update_dept_form">
<div class="form-group">
<label for="update_deptName" class="col-sm-2 control-label">部门名称</label>
<div class="col-sm-8">
<input type="text" name="deptName" class="form-control" id="update_deptName">
</div>
</div>
<div class="form-group">
<label for="update_deptLeader" class="col-sm-2 control-label">部门老大</label>
<div class="col-sm-8">
<input type="text" name="deptLeader" class="form-control" id="update_deptLeader">
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary dept_update_btn">保存</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<script type="text/javascript">
<!-- ==========================部门新增操作=================================== -->
//1 点击编辑按钮,发送AJAX请求查询对应id的部门信息,进行回显;
//2 进行修改,点击更新按钮发送AJAX请求,将更改后的信息保存到数据库中;
//3 跳转到当前更改页;
var edit_deptId = 0;
var curPageNo = ${curPageNo};
$(".dept_edit_btn").click(function () {
edit_deptId = $(this).parent().parent().find("td:eq(0)").text();
alert("id"+edit_deptId);
//查询对应deptId的部门信息
$.ajax({
url:"/hrms/dept/getDeptById/"+edit_deptId,
type:"GET",
success:function (result) {
if (result.code == 100){
var deptData = result.extendInfo.department;
//回显
$("#update_deptName").val(deptData.deptName);
$("#update_deptLeader").val(deptData.deptLeader);
}else {
alert(result.extendInfo.get_dept_error);
}
}
});
});
$(".dept_update_btn").click(function () {
$.ajax({
url:"/hrms/dept/updateDept/"+edit_deptId,
type:"PUT",
data:$(".update_dept_form").serialize(),
success:function (result) {
if(result.code == 100){
alert("更新成功!");
window.location.href = "/hrms/dept/getDeptList?pageNo="+curPageNo;
} else {
alert(result.extendInfo.update_dept_error);
}
}
});
});
</script>
</body>
</html>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Employee Add Page</title>
</head>
<body>
<div class="modal fade emp-add-modal" tabindex="-1" role="dialog" aria-labelledby="emp-add-modal">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">员工新增</h4>
</div>
<div class="modal-body">
<form class="form-horizontal add_emp_form">
<div class="form-group">
<label for="add_inputName" class="col-sm-2 control-label">姓名</label>
<div class="col-sm-8">
<input type="text" name="empName" class="form-control" id="add_inputName" placeholder="如:张三">
<span id="helpBlock_add_inputName" class="help-block"></span>
</div>
</div>
<div class="form-group">
<label for="add_inputEmail" class="col-sm-2 control-label">邮箱</label>
<div class="col-sm-8">
<input type="email" name="empEmail" class="form-control" id="add_inputEmail" placeholder="zs@qq.com">
<span id="helpBlock_add_inputEmail" class="help-block"></span>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">性别</label>
<div class="col-sm-8">
<label class="radio-inline">
<input type="radio" checked="checked" name="gender" id="add_inputGender1" value="M">
</label>
<label class="radio-inline">
<input type="radio" name="gender" id="add_inputGender2" value="F">
</label>
</div>
</div>
<div class="form-group">
<label for="add_department" class="col-sm-2 control-label">部门</label>
<div class="col-sm-8">
<div class="checkbox">
<select class="form-control" name="departmentId" id="add_department">
<%-- <option value="1">CEO</option>--%>
</select>
</div>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary emp_save_btn">保存</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<script type="text/javascript">
<!-------------------------------------员工新增操作-------------------------------------->
//=======0 点击 员工新增按钮,发送AJAX请求查询部门列表信息,弹出模态框,
// 将查询得到的部门列表信息显示在对应模态框中部门信息处。=============================
$(".emp_add_btn").click(function () {
$.ajax({
url:"/hrms/dept/getDeptList",
type:"GET",
success:function (result) {
if (result.code == 100){
$.each(result.extendInfo.departmentList, function () {
var optionEle = $("<option></option>").append(this.deptName).attr("value", this.deptId);
optionEle.appendTo("#add_department");
});
}
}
});
$('.emp-add-modal').modal({
backdrop:static,
keyboard:true
});
});
//=========1 当鼠标从姓名输入框移开的时候,判断姓名输入框内的姓名是否重复 ============
$("#add_inputName").change(function () {
var empName = $("#add_inputName").val();
$.ajax({
url:"/hrms/emp/checkEmpExists",
type:"GET",
data:"empName="+empName,
success:function (result) {
if (result.code == 100){
$("#add_inputName").parent().parent().removeClass("has-error");
$("#add_inputName").parent().parent().addClass("has-success");
$("#helpBlock_add_inputName").text("用户名可用!");
$(".emp_save_btn").attr("btn_name_exists", "success");
}else {
$("#add_inputName").parent().parent().removeClass("has-success");
$("#add_inputName").parent().parent().addClass("has-error");
$("#helpBlock_add_inputName").text(result.extendInfo.name_reg_error);
$(".emp_save_btn").attr("btn_name_exists", "error");
}
}
});
});
//3 保存
$(".emp_save_btn").click(function () {
//1 获取到第3步:$(".emp_save_btn").attr("btn_name_exists", "success");中btn_name_exists的值
// btn_name_exists = error,就是姓名重复
if($(".emp_save_btn").attr("btn_name_exists") == "error"){
return false;
}
//================2 对输入的姓名和邮箱格式进行验证===============
var inputName = $("#add_inputName").val();
var inputEmail = $("#add_inputEmail").val();
//验证格式。姓名:2-5位中文或6-16位英文和数字组合;
var regName = /(^[a-zA-Z0-9_-]{3,16}$)|(^[\u2E80-\u9FFF]{2,5})/;
var regEmail = /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/;
if (!regName.test(inputName)){
alert("测试:输入姓名格式不正确!");
//输入框变红
$("#add_inputName").parent().parent().addClass("has-error");
//输入框下面显示红色提示信息
$("#helpBlock_add_inputName").text("输入姓名为2-5位中文或6-16位英文和数字组合");
return false;
}else {
//移除格式
$("#add_inputName").parent().parent().removeClass("has-error");
$("#add_inputName").parent().parent().addClass("has-success");
$("#helpBlock_add_inputName").hide();
}
if (!regEmail.test(inputEmail)){
//输入框变红
$("#add_inputEmail").parent().parent().addClass("has-error");
//输入框下面显示红色提示信息
$("#helpBlock_add_inputEmail").text("输入邮箱格式不正确!");
return false;
}else {
//移除格式
$("#add_inputEmail").parent().parent().removeClass("has-error");
$("#add_inputName").parent().parent().addClass("has-success");
$("#helpBlock_add_inputEmail").hide();
}
$.ajax({
url:"/hrms/emp/addEmp",
type:"POST",
data:$(".add_emp_form").serialize(),
success:function (result) {
if (result.code == 100){
alert("员工新增成功");
$('#emp-add-modal').modal("hide");
//跳往最后一页,由于新增记录,所以要重新查询总页数
$.ajax({
url:"/hrms/emp/getTotalPages",
type:"GET",
success:function (result) {
var totalPage = result.extendInfo.totalPages;
window.location.href="/hrms/emp/getEmpList?pageNo="+totalPage;
}
})
} else {
alert("员工新增失败!");
}
}
});
});
</script>
</body>
</html>
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
Hello,,,,测试成功了
</body>
</html>
此差异已折叠。
此差异已折叠。
此差异已折叠。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<title>foot</title>
<!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- 可选的 Bootstrap 主题文件(一般不用引入) -->
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
</head>
<body>
<!-- 尾部 -->
<div class="hrms_footer" style="text-align: center;">
<address>
<strong>Copyright&copy;XXX公司.Inc</strong><br>
徐汇区民润大厦五层<br>
<abbr title="Phone">P:</abbr> (123) 456-7890
</address>
</div><!-- /.hrms_footer -->
</body>
</html>
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
Manifest-Version: 1.0
Built-By: Administrator
Created-By: IntelliJ IDEA
Build-Jdk: 1.8.0_73
此差异已折叠。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.hrms">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"></context:exclude-filter>
</context:component-scan>
<import resource="MyBatis.xml"/>
</beans>
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册