├── .idea ├── .name ├── artifacts │ ├── ssm_war.xml │ └── ssm_war_exploded.xml ├── compiler.xml ├── dataSources.xml ├── dataSources │ ├── 3512fdfb-7018-4973-afcf-ce108d6922c6.xml │ └── 3512fdfb-7018-4973-afcf-ce108d6922c6 │ │ └── storage_v2 │ │ └── _src_ │ │ └── schema │ │ └── finalproject.4xihCA.meta ├── encodings.xml ├── jsLibraryMappings.xml ├── libraries │ ├── Maven__ch_qos_logback_logback_classic_1_1_1.xml │ ├── Maven__ch_qos_logback_logback_core_1_1_1.xml │ ├── Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_8.xml │ ├── Maven__com_fasterxml_jackson_core_jackson_core_2_9_8.xml │ ├── Maven__com_fasterxml_jackson_core_jackson_databind_2_9_8.xml │ ├── Maven__com_github_jsqlparser_jsqlparser_1_0.xml │ ├── Maven__com_github_pagehelper_pagehelper_5_1_2.xml │ ├── Maven__com_mchange_c3p0_0_9_5_2.xml │ ├── Maven__com_mchange_mchange_commons_java_0_2_11.xml │ ├── Maven__commons_beanutils_commons_beanutils_1_8_0.xml │ ├── Maven__commons_collections_commons_collections_3_2_1.xml │ ├── Maven__commons_fileupload_commons_fileupload_1_4.xml │ ├── Maven__commons_io_commons_io_2_2.xml │ ├── Maven__commons_lang_commons_lang_2_4.xml │ ├── Maven__commons_logging_commons_logging_1_1_1.xml │ ├── Maven__javax_servlet_javax_servlet_api_3_0_1.xml │ ├── Maven__javax_servlet_jsp_jsp_api_2_2.xml │ ├── Maven__javax_servlet_jstl_1_2.xml │ ├── Maven__joda_time_joda_time_2_10_2.xml │ ├── Maven__junit_junit_3_8_1.xml │ ├── Maven__mysql_mysql_connector_java_5_1_38.xml │ ├── Maven__net_sf_ezmorph_ezmorph_1_0_6.xml │ ├── Maven__net_sf_json_lib_json_lib_2_3.xml │ ├── Maven__org_codehaus_jackson_jackson_core_asl_1_9_13.xml │ ├── Maven__org_codehaus_jackson_jackson_mapper_asl_1_9_13.xml │ ├── Maven__org_mybatis_mybatis_3_4_4.xml │ ├── Maven__org_mybatis_mybatis_spring_1_3_1.xml │ ├── Maven__org_slf4j_slf4j_api_1_7_6.xml │ ├── Maven__org_springframework_spring_aop_5_0_3_RELEASE.xml │ ├── Maven__org_springframework_spring_beans_5_0_3_RELEASE.xml │ ├── Maven__org_springframework_spring_context_5_0_3_RELEASE.xml │ ├── Maven__org_springframework_spring_context_support_5_0_3_RELEASE.xml │ ├── Maven__org_springframework_spring_core_5_0_3_RELEASE.xml │ ├── Maven__org_springframework_spring_expression_5_0_3_RELEASE.xml │ ├── Maven__org_springframework_spring_jcl_5_0_3_RELEASE.xml │ ├── Maven__org_springframework_spring_jdbc_5_0_3_RELEASE.xml │ ├── Maven__org_springframework_spring_test_5_0_3_RELEASE.xml │ ├── Maven__org_springframework_spring_tx_5_0_3_RELEASE.xml │ ├── Maven__org_springframework_spring_web_5_0_3_RELEASE.xml │ ├── Maven__org_springframework_spring_webmvc_5_0_3_RELEASE.xml │ └── Maven__taglibs_standard_1_1_2.xml ├── misc.xml ├── modules.xml ├── uiDesigner.xml └── vcs.xml ├── README.md ├── mysql-connector-java-5.1.26-bin.jar ├── pom.xml ├── src └── main │ ├── java │ └── cn │ │ └── allan │ │ ├── controller │ │ ├── CommentController.java │ │ ├── ErrorController.java │ │ ├── ManagerController.java │ │ ├── NewsController.java │ │ ├── TypeController.java │ │ └── UserController.java │ │ ├── interceptor │ │ ├── ManageInterceptor.java │ │ └── UserInterceptor.java │ │ ├── mapper │ │ ├── CommentMapper.java │ │ ├── ManagerMapper.java │ │ ├── NewsMapper.java │ │ ├── TypeMapper.java │ │ └── UserMapper.java │ │ ├── pojo │ │ ├── Comment.java │ │ ├── Manager.java │ │ ├── News.java │ │ ├── Type.java │ │ └── User.java │ │ ├── service │ │ ├── CommentService.java │ │ ├── ManagerService.java │ │ ├── NewsService.java │ │ ├── TypeService.java │ │ ├── UploadService.java │ │ ├── UserService.java │ │ └── impl │ │ │ ├── CommentServiceImpl.java │ │ │ ├── ManagerServiceImpl.java │ │ │ ├── NewsServiceImpl.java │ │ │ ├── TypeServiceImpl.java │ │ │ ├── UploadServiceImpl.java │ │ │ └── UserServiceImpl.java │ │ ├── servlet │ │ └── WebPathInitServlet.java │ │ └── test │ │ └── Test.java │ ├── resources │ ├── generatorConfig.xml │ ├── jdbc.properties │ ├── log4j.properties │ ├── mapper │ │ ├── CommentMapper.xml │ │ ├── ManagerMapper.xml │ │ ├── NewsMapper.xml │ │ ├── TypeMapper.xml │ │ └── UserMapper.xml │ ├── mybatis-config.xml │ └── spring │ │ ├── spring-dao.xml │ │ ├── spring-mvc.xml │ │ └── spring-service.xml │ └── webapp │ ├── WEB-INF │ └── web.xml │ ├── index.jsp │ ├── jsp │ ├── common │ │ ├── common5.jsp │ │ ├── footer.jsp │ │ ├── frontHeader.jsp │ │ ├── header.jsp │ │ ├── menu.jsp │ │ ├── menu2.jsp │ │ ├── menu3.jsp │ │ ├── menu4.jsp │ │ ├── menu5.jsp │ │ └── resources.jsp │ ├── error.jsp │ ├── index.jsp │ ├── login.jsp │ ├── manage │ │ ├── commentManage.jsp │ │ ├── security.jsp │ │ └── userManage.jsp │ ├── managerLogin.jsp │ ├── news │ │ ├── add.jsp │ │ ├── detail.jsp │ │ ├── index.jsp │ │ ├── modify.jsp │ │ ├── query.jsp │ │ └── typeInfo.jsp │ ├── type │ │ ├── addType.jsp │ │ ├── index.jsp │ │ └── modify.jsp │ └── user │ │ ├── security.jsp │ │ └── userInfo.jsp │ └── static │ ├── bootstrap │ └── button.css │ ├── images │ ├── 04.jpg │ ├── 07.jpg │ ├── 1.jpg │ ├── bg3.jpg │ ├── icon-4.png │ ├── icon-5.png │ ├── tupian.jpg │ ├── xiankan.jpg │ └── xiankan.png │ ├── js │ ├── checkbox.js │ ├── jquery-1.8.2.min.js │ ├── jquery-3.3.1.js │ ├── jquery.cookie.js │ ├── jquery.validationEngine.js │ └── languages │ │ └── jquery.validationEngine-zh_CN.js │ ├── layui │ ├── css │ │ ├── layui.css │ │ ├── layui.mobile.css │ │ └── modules │ │ │ ├── code.css │ │ │ ├── laydate │ │ │ └── default │ │ │ │ └── laydate.css │ │ │ └── layer │ │ │ └── default │ │ │ ├── icon-ext.png │ │ │ ├── icon.png │ │ │ ├── layer.css │ │ │ ├── loading-0.gif │ │ │ ├── loading-1.gif │ │ │ └── loading-2.gif │ ├── font │ │ ├── iconfont.eot │ │ ├── iconfont.svg │ │ ├── iconfont.ttf │ │ └── iconfont.woff │ ├── images │ │ └── face │ │ │ ├── 0.gif │ │ │ ├── 1.gif │ │ │ ├── 10.gif │ │ │ ├── 11.gif │ │ │ ├── 12.gif │ │ │ ├── 13.gif │ │ │ ├── 14.gif │ │ │ ├── 15.gif │ │ │ ├── 16.gif │ │ │ ├── 17.gif │ │ │ ├── 18.gif │ │ │ ├── 19.gif │ │ │ ├── 2.gif │ │ │ ├── 20.gif │ │ │ ├── 21.gif │ │ │ ├── 22.gif │ │ │ ├── 23.gif │ │ │ ├── 24.gif │ │ │ ├── 25.gif │ │ │ ├── 26.gif │ │ │ ├── 27.gif │ │ │ ├── 28.gif │ │ │ ├── 29.gif │ │ │ ├── 3.gif │ │ │ ├── 30.gif │ │ │ ├── 31.gif │ │ │ ├── 32.gif │ │ │ ├── 33.gif │ │ │ ├── 34.gif │ │ │ ├── 35.gif │ │ │ ├── 36.gif │ │ │ ├── 37.gif │ │ │ ├── 38.gif │ │ │ ├── 39.gif │ │ │ ├── 4.gif │ │ │ ├── 40.gif │ │ │ ├── 41.gif │ │ │ ├── 42.gif │ │ │ ├── 43.gif │ │ │ ├── 44.gif │ │ │ ├── 45.gif │ │ │ ├── 46.gif │ │ │ ├── 47.gif │ │ │ ├── 48.gif │ │ │ ├── 49.gif │ │ │ ├── 5.gif │ │ │ ├── 50.gif │ │ │ ├── 51.gif │ │ │ ├── 52.gif │ │ │ ├── 53.gif │ │ │ ├── 54.gif │ │ │ ├── 55.gif │ │ │ ├── 56.gif │ │ │ ├── 57.gif │ │ │ ├── 58.gif │ │ │ ├── 59.gif │ │ │ ├── 6.gif │ │ │ ├── 60.gif │ │ │ ├── 61.gif │ │ │ ├── 62.gif │ │ │ ├── 63.gif │ │ │ ├── 64.gif │ │ │ ├── 65.gif │ │ │ ├── 66.gif │ │ │ ├── 67.gif │ │ │ ├── 68.gif │ │ │ ├── 69.gif │ │ │ ├── 7.gif │ │ │ ├── 70.gif │ │ │ ├── 71.gif │ │ │ ├── 8.gif │ │ │ └── 9.gif │ ├── lay │ │ └── modules │ │ │ ├── carousel.js │ │ │ ├── code.js │ │ │ ├── colorpicker.js │ │ │ ├── element.js │ │ │ ├── flow.js │ │ │ ├── form.js │ │ │ ├── jquery.js │ │ │ ├── laydate.js │ │ │ ├── layedit.js │ │ │ ├── layer.js │ │ │ ├── laypage.js │ │ │ ├── laytpl.js │ │ │ ├── mobile.js │ │ │ ├── rate.js │ │ │ ├── slider.js │ │ │ ├── table.js │ │ │ ├── tree.js │ │ │ ├── upload.js │ │ │ └── util.js │ ├── layui.all.js │ └── layui.js │ ├── manager │ ├── index.css │ ├── security.css │ └── userManage.css │ ├── news │ ├── add.css │ └── index.css │ ├── type │ ├── addType.css │ └── index.css │ └── webfront │ ├── detail.css │ ├── index.css │ ├── login.css │ ├── managerLogin.css │ ├── style.css │ ├── typeInfo.css │ ├── userInfo.css │ └── validationEngine.jquery.css └── ssm.iml /.idea/.name: -------------------------------------------------------------------------------- 1 | ssm_project1 -------------------------------------------------------------------------------- /.idea/artifacts/ssm_war.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | $PROJECT_DIR$/target 4 | 5 | 6 | ssm 7 | war 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /.idea/dataSources.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | mysql 6 | true 7 | com.mysql.jdbc.Driver 8 | jdbc:mysql://localhost:3306/ssmproject?useSSL=false&serverTimezone=Hongkong&characterEncoding=utf-8&autoReconnect=true 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /.idea/dataSources/3512fdfb-7018-4973-afcf-ce108d6922c6/storage_v2/_src_/schema/finalproject.4xihCA.meta: -------------------------------------------------------------------------------- 1 | #n:finalproject 2 | ! [null, 0, null, null, -2147483648, -2147483648] 3 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.idea/jsLibraryMappings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__ch_qos_logback_logback_classic_1_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__ch_qos_logback_logback_core_1_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_8.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_8.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_8.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_github_pagehelper_pagehelper_5_1_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_mchange_c3p0_0_9_5_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_mchange_mchange_commons_java_0_2_11.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_8_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_collections_commons_collections_3_2_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_fileupload_commons_fileupload_1_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_io_commons_io_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_lang_commons_lang_2_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_logging_commons_logging_1_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__javax_servlet_jsp_jsp_api_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__javax_servlet_jstl_1_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__joda_time_joda_time_2_10_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__junit_junit_3_8_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__mysql_mysql_connector_java_5_1_38.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__net_sf_ezmorph_ezmorph_1_0_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__net_sf_json_lib_json_lib_2_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_codehaus_jackson_jackson_core_asl_1_9_13.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_codehaus_jackson_jackson_mapper_asl_1_9_13.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_mybatis_mybatis_3_4_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_mybatis_mybatis_spring_1_3_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_aop_5_0_3_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_beans_5_0_3_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_context_5_0_3_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_context_support_5_0_3_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_core_5_0_3_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_expression_5_0_3_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_jcl_5_0_3_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_jdbc_5_0_3_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_test_5_0_3_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_tx_5_0_3_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_web_5_0_3_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_webmvc_5_0_3_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__taglibs_standard_1_1_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ssm_project1 2 | 该项目为新闻发布管理平台,包括前台和后台,其中前台主要有查看新闻,登录、注册、发布评论个人信息管理等功能,后台有新闻的增删查改、管理员个人信息的修改,登录密码的修改、以及新闻类别的增删查改、用户管理、评论管理等功能 3 | -------------------------------------------------------------------------------- /mysql-connector-java-5.1.26-bin.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-chenliang/ssm_project1/83462b9aea4aa35db5476df63be6fa5a6db9cb04/mysql-connector-java-5.1.26-bin.jar -------------------------------------------------------------------------------- /src/main/java/cn/allan/controller/CommentController.java: -------------------------------------------------------------------------------- 1 | package cn.allan.controller; 2 | 3 | import cn.allan.pojo.Comment; 4 | import cn.allan.pojo.News; 5 | import cn.allan.pojo.Type; 6 | import cn.allan.pojo.User; 7 | import cn.allan.service.CommentService; 8 | import cn.allan.service.NewsService; 9 | import cn.allan.service.TypeService; 10 | import cn.allan.service.UserService; 11 | import org.springframework.beans.factory.annotation.Autowired; 12 | import org.springframework.stereotype.Controller; 13 | import org.springframework.ui.Model; 14 | import org.springframework.web.bind.annotation.RequestBody; 15 | import org.springframework.web.bind.annotation.RequestMapping; 16 | import org.springframework.web.bind.annotation.ResponseBody; 17 | 18 | import javax.servlet.http.HttpServletRequest; 19 | import javax.servlet.http.HttpSession; 20 | import java.util.ArrayList; 21 | import java.util.Date; 22 | import java.util.List; 23 | 24 | @Controller 25 | @RequestMapping("/comment") 26 | public class CommentController { 27 | 28 | @Autowired 29 | private CommentService commentService; 30 | @Autowired 31 | private UserService userService; 32 | @Autowired 33 | private NewsService newsService; 34 | @Autowired 35 | private TypeService typeService; 36 | /** 37 | * 查询当前用户的所有评论:前台 38 | * @param username 39 | * @return 40 | */ 41 | @RequestMapping("/userComment") 42 | @ResponseBody 43 | public List userComment(String username){ 44 | List list = commentService.selectUserComment(username); 45 | return list; 46 | } 47 | /** 48 | * 用户删除某条评论记录:前台 49 | * @param username 50 | * @param id 51 | * @param model 52 | * @return 53 | */ 54 | @RequestMapping("/delete") 55 | public String delete(String username, Integer id, Model model){ 56 | commentService.delete(id); 57 | User user = userService.selectByUsername(username); 58 | model.addAttribute("user",user); 59 | return "/user/userInfo"; 60 | } 61 | /** 62 | * 当前用户发布评论:前台 63 | * 并且再根据新闻id查询所有评论返回到页面上 64 | * @param comment 65 | * @param model 66 | * @return 67 | */ 68 | @RequestMapping("/addComment") 69 | public String addComment(Comment comment,Model model){ 70 | comment.setComdate(new Date()); 71 | commentService.addComment(comment); 72 | //查询为id的详细信息 73 | News news = newsService.selectOne(comment.getNewsId()); 74 | model.addAttribute("news",news); 75 | //查询所有的type 76 | List list = typeService.selectAll(); 77 | model.addAttribute("list",list); 78 | return "/news/detail"; 79 | } 80 | /** 81 | * 根据新闻id查询新闻对应的评论:前台 82 | * @param id 83 | * @return 84 | */ 85 | @RequestMapping("/selectCommentByNid") 86 | @ResponseBody 87 | public List selectCommentByNid(Integer id){ 88 | List list = commentService.selectCommentByNid(id); 89 | return list; 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /src/main/java/cn/allan/controller/ErrorController.java: -------------------------------------------------------------------------------- 1 | package cn.allan.controller; 2 | 3 | import org.springframework.stereotype.Controller; 4 | import org.springframework.web.bind.annotation.RequestMapping; 5 | 6 | @Controller 7 | public class ErrorController { 8 | /** 9 | * 非法操作跳转到error.jsp页面 10 | * @return 11 | */ 12 | @RequestMapping("/error") 13 | public String error(){ 14 | return "error"; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/cn/allan/controller/TypeController.java: -------------------------------------------------------------------------------- 1 | package cn.allan.controller; 2 | 3 | import cn.allan.mapper.TypeMapper; 4 | import cn.allan.pojo.Type; 5 | import cn.allan.service.TypeService; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Controller; 8 | import org.springframework.ui.Model; 9 | import org.springframework.web.bind.annotation.RequestBody; 10 | import org.springframework.web.bind.annotation.RequestMapping; 11 | import org.springframework.web.bind.annotation.RequestParam; 12 | import org.springframework.web.bind.annotation.ResponseBody; 13 | 14 | import java.util.ArrayList; 15 | import java.util.List; 16 | 17 | @Controller 18 | @RequestMapping("/type") 19 | public class TypeController { 20 | @Autowired 21 | private TypeService typeService; 22 | /** 23 | * 跳转到addType.jsp页面 24 | * @return 25 | */ 26 | @RequestMapping("/addType") 27 | public String addType(){ 28 | return "/type/addType"; 29 | } 30 | /** 31 | * 增加类别名称::后台 32 | * @param model 33 | * @param type 34 | * @return 35 | */ 36 | @RequestMapping(value = "/add",produces={"text/html;charset=UTF-8;","application/json;"}) 37 | public String add(Model model,Type type){ 38 | System.out.println(type.getName()); 39 | if (type.getName() == null || type.getName().length()<=0||type.getName().equals("")==true){ 40 | model.addAttribute("msg","类别名称不能为空"); 41 | }else if (!typeService.checkType(type.getName())){ 42 | typeService.addType(type.getName()); 43 | model.addAttribute("msg","添加成功"); 44 | }else{ 45 | model.addAttribute("msg","该类别名已存在"); 46 | } 47 | return "/type/addType"; 48 | } 49 | /** 50 | * 查询所有的类别:后台 51 | * @param model 52 | * @return 53 | */ 54 | @RequestMapping("/all") 55 | public String all(Model model){ 56 | List list = typeService.selectAll(); 57 | model.addAttribute("typeList",list); 58 | return "/type/index"; 59 | } 60 | /** 61 | * 数据回显:后台 62 | * @param id 63 | * @return 64 | */ 65 | @RequestMapping("/modify") 66 | public String update(Model model,@RequestParam("id") Integer id){ 67 | Type type = typeService.selectOne(id); 68 | model.addAttribute("type",type); 69 | return "/type/modify"; 70 | } 71 | /** 72 | * 删除类别:后台 73 | * @param id 74 | * @return 75 | */ 76 | @RequestMapping("/delete") 77 | public String delete(@RequestParam("id") Integer id){ 78 | typeService.deleteOne(id); 79 | return "redirect:/type/all"; 80 | } 81 | /** 82 | * 更新类别:后台 83 | * @param type 84 | * @param model 85 | * @return 86 | */ 87 | @RequestMapping("/update") 88 | public String update(Type type,Model model){ 89 | System.out.println(type.getName()); 90 | if (typeService.checkTypeByName(type)<1){ 91 | typeService.update(type); 92 | return "redirect:/type/all"; 93 | }else{ 94 | model.addAttribute("msg","该类别名已存在"); 95 | return "/type/modify"; 96 | } 97 | } 98 | /** 99 | * 批量删除:后台 100 | * @return 101 | */ 102 | @RequestMapping(value = "/batchDelete",produces={"text/html;charset=UTF-8;","application/json;"}) 103 | @ResponseBody 104 | public String batchDelete(String name){ 105 | List list = new ArrayList<>(); 106 | for(int i=0;i fuzzyQuery(Model model,String typeName){ 121 | List list = typeService.fuzzyQueryType(typeName); 122 | System.out.println(list.size()); 123 | return list; 124 | } 125 | } 126 | -------------------------------------------------------------------------------- /src/main/java/cn/allan/interceptor/ManageInterceptor.java: -------------------------------------------------------------------------------- 1 | package cn.allan.interceptor; 2 | 3 | import org.springframework.web.servlet.HandlerInterceptor; 4 | import org.springframework.web.servlet.ModelAndView; 5 | 6 | import javax.servlet.http.HttpServletRequest; 7 | import javax.servlet.http.HttpServletResponse; 8 | 9 | public class ManageInterceptor implements HandlerInterceptor { 10 | @Override 11 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { 12 | Object manager = request.getSession().getAttribute("manager"); 13 | // 未登录 14 | if(manager == null) { 15 | request.getRequestDispatcher("/error").forward(request, response); 16 | return false; 17 | }else{ 18 | //已登录,不拦截 19 | return true; 20 | } 21 | } 22 | 23 | @Override 24 | public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { 25 | 26 | } 27 | 28 | @Override 29 | public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { 30 | 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/cn/allan/interceptor/UserInterceptor.java: -------------------------------------------------------------------------------- 1 | package cn.allan.interceptor; 2 | 3 | import org.springframework.web.servlet.HandlerInterceptor; 4 | import org.springframework.web.servlet.ModelAndView; 5 | 6 | import javax.servlet.http.HttpServletRequest; 7 | import javax.servlet.http.HttpServletResponse; 8 | 9 | public class UserInterceptor implements HandlerInterceptor { 10 | @Override 11 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { 12 | 13 | Object user = request.getSession().getAttribute("user"); 14 | // 未登录 15 | if(user == null) { 16 | request.getRequestDispatcher("/error").forward(request, response); 17 | return false; 18 | }else{ 19 | //已登录,不拦截 20 | return true; 21 | } 22 | } 23 | 24 | @Override 25 | public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { 26 | 27 | } 28 | 29 | @Override 30 | public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { 31 | 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/cn/allan/mapper/CommentMapper.java: -------------------------------------------------------------------------------- 1 | package cn.allan.mapper; 2 | 3 | import cn.allan.pojo.Comment; 4 | import org.apache.ibatis.annotations.Param; 5 | 6 | import java.util.List; 7 | 8 | public interface CommentMapper { 9 | /** 10 | * 根据用户名查询其所有的评论 11 | * @param username 12 | * @return 13 | */ 14 | List selectUserComment(@Param("username")String username); 15 | /** 16 | * 删除评论 17 | */ 18 | void delete(@Param("id") Integer id); 19 | /** 20 | * 用户评论新闻 21 | */ 22 | int insert(Comment comment); 23 | 24 | /** 25 | * 根据新闻id查询新闻对应的所有评论 26 | * @param id 27 | * @return 28 | */ 29 | List selectCommentByNid(Integer id); 30 | } -------------------------------------------------------------------------------- /src/main/java/cn/allan/mapper/ManagerMapper.java: -------------------------------------------------------------------------------- 1 | package cn.allan.mapper; 2 | 3 | import cn.allan.pojo.Comment; 4 | import cn.allan.pojo.Manager; 5 | import cn.allan.pojo.User; 6 | import org.apache.ibatis.annotations.Param; 7 | 8 | import java.util.List; 9 | import java.util.Map; 10 | 11 | public interface ManagerMapper { 12 | 13 | /** 14 | * 根据用户名和密码查询记录:登录 15 | * @return 16 | */ 17 | Manager selectManager(Manager manager); 18 | /** 19 | * 根据用户名查询信息 20 | */ 21 | Manager selectByUsername(@Param("username") String username); 22 | 23 | /** 24 | * 修改管理员信息 25 | * @param manager 26 | * @return 27 | */ 28 | int updateManagerInfo(Manager manager); 29 | /** 30 | * 根据用户名修改密码 31 | * @param manager 32 | * @return 33 | */ 34 | int updatePassword(Manager manager); 35 | /** 36 | * 用户管理:查询所有的用户 37 | */ 38 | List selectAllUser(); 39 | /** 40 | * 用户管理:删除用户 41 | * @param id 42 | * @return 43 | */ 44 | int deleteUser(@Param("id") Integer id); 45 | /** 46 | * 评论管理:查询所有的新闻评论 47 | * @return 48 | */ 49 | List selectAllComment(); 50 | /** 51 | * 评论管理:删除评论 52 | */ 53 | int deleteComment(@Param("id")Integer id); 54 | /** 55 | * 计算新闻条数 56 | */ 57 | int countNews(); 58 | /** 59 | * 计算新闻类别数量 60 | */ 61 | int countType(); 62 | /** 63 | * 计算用户数量 64 | */ 65 | int countUser(); 66 | /** 67 | * 计算评论数量 68 | */ 69 | int countComment(); 70 | 71 | int countAllType(@Param("id")Integer id); 72 | } -------------------------------------------------------------------------------- /src/main/java/cn/allan/mapper/NewsMapper.java: -------------------------------------------------------------------------------- 1 | package cn.allan.mapper; 2 | 3 | 4 | import cn.allan.pojo.News; 5 | import org.apache.ibatis.annotations.Mapper; 6 | import org.apache.ibatis.annotations.Param; 7 | import org.springframework.web.bind.annotation.RequestParam; 8 | 9 | import java.util.List; 10 | 11 | @Mapper 12 | public interface NewsMapper { 13 | void add(News news); 14 | 15 | /** 16 | * 查询所有的新闻 17 | * @return 18 | */ 19 | List select(); 20 | 21 | /** 22 | * 查询单个新闻详情 23 | * @param id 24 | * @return 25 | */ 26 | News selectOne(@Param("id")Integer id); 27 | /** 28 | * 更新新闻 29 | */ 30 | void update(News news); 31 | /** 32 | * 删除新闻 33 | */ 34 | void delete(@RequestParam("id")Integer id); 35 | /** 36 | * 批量删除 37 | * @param list 38 | */ 39 | void batchDelete(List list); 40 | 41 | List fuzzyQuery(@Param("text")String text); 42 | 43 | /** 44 | * 前台数据展示 45 | */ 46 | List item1(@Param("typeName") String typeName); 47 | /** 48 | * 最新新闻查询(前台) 49 | */ 50 | News lastNews(); 51 | /** 52 | * 最近新闻(前台) 53 | */ 54 | List recent(); 55 | /** 56 | * 查询国际类别新闻(前台) 57 | */ 58 | List international(@Param("typeName") String typeName); 59 | /** 60 | * 增加点击量(前台) 61 | */ 62 | void updateClick(@Param("id") Integer id); 63 | /** 64 | * 点击排行(前台) 65 | */ 66 | List clickRank(); 67 | 68 | void click(@Param("id") Integer id,@Param("count")Integer count); 69 | 70 | /** 71 | * 轮播图栏目(前台) 72 | */ 73 | List carousel(); 74 | /** 75 | * 类别分类 76 | */ 77 | List selectByTypeId(@Param("typeId")Integer typeId); 78 | } 79 | -------------------------------------------------------------------------------- /src/main/java/cn/allan/mapper/TypeMapper.java: -------------------------------------------------------------------------------- 1 | package cn.allan.mapper; 2 | import cn.allan.pojo.Type; 3 | import org.apache.ibatis.annotations.Param; 4 | 5 | import java.util.List; 6 | 7 | public interface TypeMapper { 8 | 9 | boolean checkType(@Param("name") String name); 10 | 11 | Type addType(@Param("name") String name); 12 | 13 | List selectAll(); 14 | 15 | Type selectOne(@Param("id") Integer id); 16 | 17 | void deleteOne(@Param("id") Integer id); 18 | 19 | void update(Type type); 20 | 21 | /** 22 | * 更改类型名时判断除本身外是否有同名的 23 | * @param type 24 | * @return 25 | */ 26 | Integer checkTypeByName(Type type); 27 | 28 | /** 29 | * 批量删除 30 | * @param list 31 | */ 32 | void batchDelete(List list); 33 | /** 34 | * 模糊查询 35 | */ 36 | List fuzzyQueryType(@Param("typeName") String typeName); 37 | } -------------------------------------------------------------------------------- /src/main/java/cn/allan/mapper/UserMapper.java: -------------------------------------------------------------------------------- 1 | package cn.allan.mapper; 2 | 3 | import cn.allan.pojo.User; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.apache.ibatis.annotations.Param; 6 | 7 | @Mapper 8 | public interface UserMapper { 9 | 10 | /** 11 | * 根据用户名和密码查询记录:登录 12 | * @return 13 | */ 14 | User selectByUserNameAndPwd(User user); 15 | 16 | /** 17 | * 根据user添加数据:注册 18 | * @param user 19 | * @return 20 | */ 21 | int addUser(User user); 22 | 23 | User selectByUsername(@Param("username") String username); 24 | 25 | /** 26 | * 设置或者更新用户详情信息 27 | * @param user 28 | * @return 29 | */ 30 | int updateUserInfo(User user); 31 | 32 | /** 33 | * 根据用户名查询密码 34 | * @param username 35 | * @return 36 | */ 37 | String selectPassword(@Param("username") String username); 38 | /** 39 | * 根据用户名修改密码 40 | */ 41 | int updateUserPassword(User user); 42 | /** 43 | * 更新最后一次登录时间 44 | */ 45 | int uploadLoginTime(User user); 46 | } -------------------------------------------------------------------------------- /src/main/java/cn/allan/pojo/Comment.java: -------------------------------------------------------------------------------- 1 | package cn.allan.pojo; 2 | 3 | import com.fasterxml.jackson.annotation.JsonFormat; 4 | 5 | import java.util.Date; 6 | 7 | public class Comment { 8 | private Integer id; 9 | 10 | private Integer userId; 11 | 12 | private Integer newsId; 13 | 14 | private String content; 15 | 16 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") 17 | private Date comdate; 18 | 19 | private User user; 20 | 21 | private News news; 22 | 23 | public Comment(Integer id, Integer userId, Integer newsId, String content, Date comdate,User user,News news) { 24 | this.id = id; 25 | this.userId = userId; 26 | this.newsId = newsId; 27 | this.content = content; 28 | this.comdate = comdate; 29 | this.user = user; 30 | this.news = news; 31 | } 32 | 33 | public Comment() { 34 | super(); 35 | } 36 | 37 | public Integer getId() { 38 | return id; 39 | } 40 | 41 | public void setId(Integer id) { 42 | this.id = id; 43 | } 44 | 45 | public Integer getUserId() { 46 | return userId; 47 | } 48 | 49 | public void setUserId(Integer userId) { 50 | this.userId = userId; 51 | } 52 | 53 | public Integer getNewsId() { 54 | return newsId; 55 | } 56 | 57 | public void setNewsId(Integer newsId) { 58 | this.newsId = newsId; 59 | } 60 | 61 | public String getContent() { 62 | return content; 63 | } 64 | 65 | public void setContent(String content) { 66 | this.content = content == null ? null : content.trim(); 67 | } 68 | 69 | public Date getComdate() { 70 | return comdate; 71 | } 72 | 73 | public void setComdate(Date comdate) { 74 | this.comdate = comdate; 75 | } 76 | 77 | public User getUser() { 78 | return user; 79 | } 80 | 81 | public void setUser(User user) { 82 | this.user = user; 83 | } 84 | 85 | public News getNews() { 86 | return news; 87 | } 88 | 89 | public void setNews(News news) { 90 | this.news = news; 91 | } 92 | 93 | @Override 94 | public String toString() { 95 | return "Comment{" + 96 | "id=" + id + 97 | ", userId=" + userId + 98 | ", newsId=" + newsId + 99 | ", content='" + content + '\'' + 100 | ", comdate=" + comdate + 101 | ", user=" + user + 102 | ", news=" + news + 103 | '}'; 104 | } 105 | } -------------------------------------------------------------------------------- /src/main/java/cn/allan/pojo/Manager.java: -------------------------------------------------------------------------------- 1 | package cn.allan.pojo; 2 | 3 | public class Manager { 4 | private Integer id; 5 | 6 | private String username; 7 | 8 | private String password; 9 | 10 | private String tel; 11 | 12 | private String nickname; 13 | 14 | private String name; 15 | 16 | private String email; 17 | 18 | public Manager(Integer id, String username, String password, String tel, String nickname, String name, String email) { 19 | this.id = id; 20 | this.username = username; 21 | this.password = password; 22 | this.tel = tel; 23 | this.nickname = nickname; 24 | this.name = name; 25 | this.email = email; 26 | } 27 | 28 | public Manager() { 29 | super(); 30 | } 31 | 32 | public Integer getId() { 33 | return id; 34 | } 35 | 36 | public void setId(Integer id) { 37 | this.id = id; 38 | } 39 | 40 | public String getUsername() { 41 | return username; 42 | } 43 | 44 | public void setUsername(String username) { 45 | this.username = username == null ? null : username.trim(); 46 | } 47 | 48 | public String getPassword() { 49 | return password; 50 | } 51 | 52 | public void setPassword(String password) { 53 | this.password = password == null ? null : password.trim(); 54 | } 55 | 56 | public String getTel() { 57 | return tel; 58 | } 59 | 60 | public void setTel(String tel) { 61 | this.tel = tel == null ? null : tel.trim(); 62 | } 63 | 64 | public String getNickname() { 65 | return nickname; 66 | } 67 | 68 | public void setNickname(String nickname) { 69 | this.nickname = nickname == null ? null : nickname.trim(); 70 | } 71 | 72 | public String getName() { 73 | return name; 74 | } 75 | 76 | public void setName(String name) { 77 | this.name = name == null ? null : name.trim(); 78 | } 79 | 80 | public String getEmail() { 81 | return email; 82 | } 83 | 84 | public void setEmail(String email) { 85 | this.email = email == null ? null : email.trim(); 86 | } 87 | 88 | @Override 89 | public String toString() { 90 | return "Manager{" + 91 | "id=" + id + 92 | ", username='" + username + '\'' + 93 | ", password='" + password + '\'' + 94 | ", tel='" + tel + '\'' + 95 | ", nickname='" + nickname + '\'' + 96 | ", name='" + name + '\'' + 97 | ", email='" + email + '\'' + 98 | '}'; 99 | } 100 | } -------------------------------------------------------------------------------- /src/main/java/cn/allan/pojo/Type.java: -------------------------------------------------------------------------------- 1 | package cn.allan.pojo; 2 | 3 | public class Type { 4 | private Integer id; 5 | 6 | private String name; 7 | 8 | public Type(Integer id, String name) { 9 | this.id = id; 10 | this.name = name; 11 | } 12 | 13 | public Type() { 14 | super(); 15 | } 16 | 17 | public Integer getId() { 18 | return id; 19 | } 20 | 21 | public void setId(Integer id) { 22 | this.id = id; 23 | } 24 | 25 | public String getName() { 26 | return name; 27 | } 28 | 29 | public void setName(String name) { 30 | this.name = name == null ? null : name.trim(); 31 | } 32 | 33 | @Override 34 | public String toString() { 35 | return "Type{" + 36 | "id=" + id + 37 | ", name='" + name + '\'' + 38 | '}'; 39 | } 40 | } -------------------------------------------------------------------------------- /src/main/java/cn/allan/service/CommentService.java: -------------------------------------------------------------------------------- 1 | package cn.allan.service; 2 | 3 | import cn.allan.pojo.Comment; 4 | 5 | import java.util.List; 6 | 7 | public interface CommentService { 8 | /** 9 | * 根据用户名查询其所有的评论 10 | * @param username 11 | * @return 12 | */ 13 | List selectUserComment(String username); 14 | /** 15 | * 用户删除评论 16 | * @param id 17 | */ 18 | void delete(Integer id); 19 | /** 20 | * 用户平林新闻 21 | */ 22 | int addComment(Comment comment); 23 | 24 | List selectCommentByNid(Integer id); 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/cn/allan/service/ManagerService.java: -------------------------------------------------------------------------------- 1 | package cn.allan.service; 2 | 3 | import cn.allan.pojo.Comment; 4 | import cn.allan.pojo.Manager; 5 | import cn.allan.pojo.User; 6 | 7 | import java.util.List; 8 | 9 | public interface ManagerService { 10 | 11 | Manager selectManager(Manager manager); 12 | 13 | Manager selectByUsername(String username); 14 | 15 | int updateManagerInfo(Manager manager); 16 | 17 | int updatePassword(Manager manager); 18 | 19 | List selectAllUser(); 20 | 21 | int deleteUser(Integer id); 22 | 23 | List selectAllComment(); 24 | 25 | int deleteComment(Integer id); 26 | 27 | int countNews(); 28 | 29 | int countType(); 30 | 31 | int countUser(); 32 | 33 | int countComment(); 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/cn/allan/service/NewsService.java: -------------------------------------------------------------------------------- 1 | package cn.allan.service; 2 | 3 | import cn.allan.pojo.News; 4 | import org.w3c.dom.ls.LSInput; 5 | 6 | import java.util.List; 7 | 8 | public interface NewsService { 9 | void add(News news); 10 | 11 | List select(); 12 | 13 | News selectOne(Integer id); 14 | 15 | void update(News news); 16 | 17 | void delete(Integer id); 18 | /** 19 | * 删除多条记录(批量删除)s 20 | * @param list 21 | * @return 22 | */ 23 | void batchDelete(List list); 24 | /** 25 | * 模糊查询 26 | */ 27 | List fuzzyQuery(String text); 28 | 29 | /** 30 | * 前台数据展示 31 | */ 32 | List item1(String typeName); 33 | /** 34 | * 最新新闻查询(前台) 35 | */ 36 | News lastNews(); 37 | /** 38 | * 最新新闻(前台) 39 | */ 40 | List recent(); 41 | /** 42 | * 国际新闻(前台) 43 | */ 44 | List international(String typeName); 45 | /** 46 | * 增加点击量(前台) 47 | */ 48 | void updateClick(Integer id); 49 | /** 50 | * 点击排行榜(前台) 51 | */ 52 | List clickRank(); 53 | 54 | /** 55 | * 点击次数计数 56 | * @param id 57 | * @param count 58 | */ 59 | void click(Integer id,Integer count); 60 | 61 | /** 62 | * 轮播图(前台) 63 | * @return 64 | */ 65 | List carousel(); 66 | 67 | List selectByTypeId(Integer typeId); 68 | } 69 | -------------------------------------------------------------------------------- /src/main/java/cn/allan/service/TypeService.java: -------------------------------------------------------------------------------- 1 | package cn.allan.service; 2 | 3 | 4 | import cn.allan.pojo.Type; 5 | 6 | import java.util.List; 7 | 8 | public interface TypeService { 9 | 10 | /** 11 | * 判断类别是否存在 12 | * @param name 13 | * @return 14 | */ 15 | boolean checkType(String name); 16 | 17 | /** 18 | * 增加类别 19 | * @param name 20 | * @return 21 | */ 22 | Type addType(String name); 23 | 24 | /** 25 | * 查询所有类别 26 | * @return 27 | */ 28 | List selectAll(); 29 | 30 | /** 31 | * 根据id查询类别 32 | * @param id 33 | * @return 34 | */ 35 | Type selectOne(Integer id); 36 | 37 | /** 38 | * 根据id删除类别 39 | * @param id 40 | */ 41 | void deleteOne(Integer id); 42 | 43 | /** 44 | * 根据对象更新数据 45 | * @param type 46 | */ 47 | void update(Type type); 48 | 49 | /** 50 | * 更改类型名时判断除本身外是否有同名的 51 | * @param type 52 | * @return 53 | */ 54 | Integer checkTypeByName(Type type); 55 | 56 | /** 57 | * 删除多条记录(批量删除) 58 | * @param list 59 | * @return 60 | */ 61 | void batchDelete(List list); 62 | 63 | /** 64 | * 根据类别名称进行查询 65 | * @param typeName 66 | * @return 67 | */ 68 | List fuzzyQueryType(String typeName); 69 | } 70 | -------------------------------------------------------------------------------- /src/main/java/cn/allan/service/UploadService.java: -------------------------------------------------------------------------------- 1 | package cn.allan.service; 2 | 3 | import org.springframework.web.multipart.MultipartFile; 4 | 5 | import javax.servlet.http.HttpServletRequest; 6 | 7 | /** 8 | * 文件上传 9 | */ 10 | public interface UploadService { 11 | String upload(MultipartFile file, HttpServletRequest request); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/cn/allan/service/UserService.java: -------------------------------------------------------------------------------- 1 | package cn.allan.service; 2 | 3 | import cn.allan.pojo.User; 4 | 5 | public interface UserService { 6 | User login(User user); 7 | 8 | int register(User user); 9 | 10 | User selectByUsername(String username); 11 | 12 | int update(User user); 13 | 14 | String checkPassword(String username); 15 | 16 | int uploadLoginTime(User user); 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/cn/allan/service/impl/CommentServiceImpl.java: -------------------------------------------------------------------------------- 1 | package cn.allan.service.impl; 2 | 3 | import cn.allan.mapper.CommentMapper; 4 | import cn.allan.pojo.Comment; 5 | import cn.allan.service.CommentService; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import java.util.List; 10 | 11 | @Service 12 | public class CommentServiceImpl implements CommentService { 13 | 14 | @Autowired 15 | private CommentMapper commentMapper; 16 | 17 | /** 18 | * 根据用户名查询其所有的评论 19 | * @param username 20 | * @return 21 | */ 22 | @Override 23 | public List selectUserComment(String username) { 24 | return commentMapper.selectUserComment(username); 25 | } 26 | 27 | @Override 28 | public void delete(Integer id) { 29 | commentMapper.delete(id); 30 | } 31 | 32 | @Override 33 | public int addComment(Comment comment) { 34 | return commentMapper.insert(comment); 35 | } 36 | 37 | @Override 38 | public List selectCommentByNid(Integer id) { 39 | return commentMapper.selectCommentByNid(id); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/cn/allan/service/impl/ManagerServiceImpl.java: -------------------------------------------------------------------------------- 1 | package cn.allan.service.impl; 2 | 3 | import cn.allan.mapper.ManagerMapper; 4 | import cn.allan.pojo.Comment; 5 | import cn.allan.pojo.Manager; 6 | import cn.allan.pojo.User; 7 | import cn.allan.service.ManagerService; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.stereotype.Service; 10 | 11 | import java.util.List; 12 | 13 | @Service 14 | public class ManagerServiceImpl implements ManagerService { 15 | 16 | @Autowired 17 | private ManagerMapper managerMapper; 18 | @Override 19 | public Manager selectManager(Manager manager) { 20 | return managerMapper.selectManager(manager); 21 | } 22 | 23 | @Override 24 | public Manager selectByUsername(String username) { 25 | return managerMapper.selectByUsername(username); 26 | } 27 | 28 | @Override 29 | public int updateManagerInfo(Manager manager) { 30 | return managerMapper.updateManagerInfo(manager); 31 | } 32 | 33 | @Override 34 | public int updatePassword(Manager manager) { 35 | return managerMapper.updatePassword(manager); 36 | } 37 | 38 | @Override 39 | public List selectAllUser() { 40 | return managerMapper.selectAllUser(); 41 | } 42 | 43 | @Override 44 | public int deleteUser(Integer id) { 45 | return managerMapper.deleteUser(id); 46 | } 47 | 48 | @Override 49 | public List selectAllComment() { 50 | return managerMapper.selectAllComment(); 51 | } 52 | 53 | @Override 54 | public int deleteComment(Integer id) { 55 | return managerMapper.deleteComment(id); 56 | } 57 | 58 | @Override 59 | public int countNews() { 60 | return managerMapper.countNews(); 61 | } 62 | 63 | @Override 64 | public int countType() { 65 | return managerMapper.countType(); 66 | } 67 | 68 | @Override 69 | public int countUser() { 70 | return managerMapper.countUser(); 71 | } 72 | 73 | @Override 74 | public int countComment() { 75 | return managerMapper.countComment(); 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /src/main/java/cn/allan/service/impl/NewsServiceImpl.java: -------------------------------------------------------------------------------- 1 | package cn.allan.service.impl; 2 | 3 | import cn.allan.mapper.NewsMapper; 4 | import cn.allan.pojo.News; 5 | import cn.allan.service.NewsService; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import java.util.List; 10 | 11 | @Service 12 | public class NewsServiceImpl implements NewsService { 13 | 14 | @Autowired 15 | private NewsMapper newsMapper; 16 | 17 | @Override 18 | public void add(News news) { 19 | newsMapper.add(news); 20 | } 21 | 22 | @Override 23 | public List select() { 24 | return newsMapper.select(); 25 | } 26 | 27 | @Override 28 | public News selectOne(Integer id) { 29 | return newsMapper.selectOne(id); 30 | } 31 | 32 | @Override 33 | public void update(News news) { 34 | newsMapper.update(news); 35 | } 36 | 37 | @Override 38 | public void delete(Integer id) { 39 | newsMapper.delete(id); 40 | } 41 | 42 | @Override 43 | public void batchDelete(List list) { 44 | newsMapper.batchDelete(list); 45 | } 46 | 47 | @Override 48 | public List fuzzyQuery(String text) { 49 | return newsMapper.fuzzyQuery(text); 50 | } 51 | 52 | /** 53 | * 前台数据展示 54 | * @param typeName 55 | * @return 56 | */ 57 | @Override 58 | public List item1(String typeName) { 59 | return newsMapper.item1(typeName); 60 | } 61 | 62 | /** 63 | * 最新新闻查询(前台) 64 | * @return 65 | */ 66 | @Override 67 | public News lastNews() { 68 | return newsMapper.lastNews(); 69 | } 70 | 71 | @Override 72 | public List recent() { 73 | return newsMapper.recent(); 74 | } 75 | 76 | @Override 77 | public List international(String typeName) { 78 | return newsMapper.international(typeName); 79 | } 80 | 81 | @Override 82 | public void updateClick(Integer id) { 83 | newsMapper.updateClick(id); 84 | } 85 | 86 | @Override 87 | public List clickRank() { 88 | return newsMapper.clickRank(); 89 | } 90 | 91 | @Override 92 | public void click(Integer id, Integer count) { 93 | newsMapper.click(id,count); 94 | } 95 | 96 | @Override 97 | public List carousel() { 98 | return newsMapper.carousel(); 99 | } 100 | 101 | @Override 102 | public List selectByTypeId(Integer typeId) { 103 | return newsMapper.selectByTypeId(typeId); 104 | } 105 | } 106 | -------------------------------------------------------------------------------- /src/main/java/cn/allan/service/impl/TypeServiceImpl.java: -------------------------------------------------------------------------------- 1 | package cn.allan.service.impl; 2 | 3 | import cn.allan.mapper.TypeMapper; 4 | import cn.allan.pojo.Type; 5 | import cn.allan.service.TypeService; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import java.util.List; 10 | 11 | @Service 12 | public class TypeServiceImpl implements TypeService { 13 | 14 | @Autowired 15 | private TypeMapper typeMapper; 16 | 17 | @Override 18 | public boolean checkType(String name) { 19 | return typeMapper.checkType(name); 20 | } 21 | 22 | @Override 23 | public Type addType(String name) { 24 | return typeMapper.addType(name); 25 | } 26 | 27 | @Override 28 | public List selectAll() { 29 | return typeMapper.selectAll(); 30 | } 31 | 32 | @Override 33 | public Type selectOne(Integer id) { 34 | return typeMapper.selectOne(id); 35 | } 36 | 37 | @Override 38 | public void deleteOne(Integer id) { 39 | typeMapper.deleteOne(id); 40 | } 41 | 42 | @Override 43 | public void update(Type type) { 44 | typeMapper.update(type); 45 | } 46 | 47 | @Override 48 | public Integer checkTypeByName(Type type) { 49 | return typeMapper.checkTypeByName(type); 50 | } 51 | 52 | @Override 53 | public void batchDelete(List list) { 54 | typeMapper.batchDelete(list); 55 | } 56 | 57 | @Override 58 | public List fuzzyQueryType(String typeName) { 59 | return typeMapper.fuzzyQueryType(typeName); 60 | } 61 | 62 | } 63 | -------------------------------------------------------------------------------- /src/main/java/cn/allan/service/impl/UploadServiceImpl.java: -------------------------------------------------------------------------------- 1 | package cn.allan.service.impl; 2 | 3 | import cn.allan.service.UploadService; 4 | import org.springframework.stereotype.Service; 5 | import org.springframework.web.multipart.MultipartFile; 6 | 7 | import javax.servlet.http.HttpServletRequest; 8 | import java.io.File; 9 | import java.io.IOException; 10 | import java.util.Date; 11 | 12 | @Service 13 | public class UploadServiceImpl implements UploadService { 14 | /** 15 | * 文件上传 16 | */ 17 | @Override 18 | public String upload(MultipartFile file, HttpServletRequest request) { 19 | //1、上传后的地址 20 | String realPath = request.getSession().getServletContext().getRealPath("/uploads"); 21 | //2、获取文件名 22 | String filename = file.getOriginalFilename(); 23 | //3、获取文件前缀、后缀 24 | //后缀 25 | String fileNameSuffix = "jpg"; 26 | //4、给上传的文件起别名 27 | String newFilename = (new Date()).getTime()+"."+fileNameSuffix; 28 | //5、创建File对象,传入目标路径参数,和新的文件别名 29 | File dir = new File(realPath,newFilename); 30 | //6、如果dir代表的文件不存在,则创建它 31 | if (!dir.exists()){ 32 | //创建目录 33 | dir.mkdirs(); 34 | } 35 | //7、将上传的实体文件复制到指定目录upload下 36 | try { 37 | file.transferTo(dir); 38 | } catch (IOException e) { 39 | e.printStackTrace(); 40 | } 41 | return "/uploads/" + newFilename; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/cn/allan/service/impl/UserServiceImpl.java: -------------------------------------------------------------------------------- 1 | package cn.allan.service.impl; 2 | 3 | import cn.allan.mapper.UserMapper; 4 | import cn.allan.pojo.User; 5 | import cn.allan.service.UserService; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | @Service 10 | public class UserServiceImpl implements UserService { 11 | 12 | @Autowired 13 | private UserMapper userMapper; 14 | 15 | /** 16 | * 登录 17 | * @param user 18 | * @return 19 | */ 20 | @Override 21 | public User login(User user) { 22 | return userMapper.selectByUserNameAndPwd(user); 23 | } 24 | 25 | /** 26 | * 注册 27 | * @param user 28 | * @return 29 | */ 30 | @Override 31 | public int register(User user) { 32 | return userMapper.addUser(user); 33 | } 34 | 35 | /** 36 | * 根据用户名查询所有信息 37 | * @param username 38 | * @return 39 | */ 40 | @Override 41 | public User selectByUsername(String username) { 42 | return userMapper.selectByUsername(username); 43 | } 44 | 45 | /** 46 | * 更新或设置用户详细信息 47 | * @param user 48 | * @return 49 | */ 50 | @Override 51 | public int update(User user) { 52 | return userMapper.updateUserInfo(user); 53 | } 54 | 55 | @Override 56 | public String checkPassword(String username) { 57 | return userMapper.selectPassword(username); 58 | } 59 | 60 | @Override 61 | public int uploadLoginTime(User user) { 62 | return userMapper.uploadLoginTime(user); 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/main/java/cn/allan/servlet/WebPathInitServlet.java: -------------------------------------------------------------------------------- 1 | package cn.allan.servlet; 2 | 3 | 4 | import javax.servlet.ServletConfig; 5 | import javax.servlet.ServletException; 6 | import javax.servlet.annotation.WebServlet; 7 | import javax.servlet.http.HttpServlet; 8 | 9 | @WebServlet(urlPatterns = {"/"},loadOnStartup = 1) 10 | public class WebPathInitServlet extends HttpServlet { 11 | 12 | @Override 13 | public void init(ServletConfig config) throws ServletException { 14 | //在整体应用上下文当中存储了一个path的值,用它来引用上下文路径 15 | config.getServletContext().setAttribute("path", 16 | config.getServletContext().getContextPath()); 17 | super.init(config); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/cn/allan/test/Test.java: -------------------------------------------------------------------------------- 1 | package cn.allan.test; 2 | 3 | import java.text.SimpleDateFormat; 4 | import java.util.Date; 5 | 6 | public class Test { 7 | public static void main(String[] args) { 8 | Date date = new Date(); 9 | System.out.println(date); 10 | SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd"); 11 | System.out.println(ft.format(date)); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/resources/generatorConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /src/main/resources/jdbc.properties: -------------------------------------------------------------------------------- 1 | jdbc.driver=com.mysql.jdbc.Driver 2 | jdbc.url=jdbc:mysql://localhost/ssmproject?useUnicode=true&characterEncoding=utf8 3 | jdbc.username=root 4 | jdbc.password=100259 -------------------------------------------------------------------------------- /src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=ERROR, stdout 2 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 3 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 4 | log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n -------------------------------------------------------------------------------- /src/main/resources/mapper/CommentMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 26 | 27 | delete from comment where id=#{id} 28 | 29 | 30 | insert into comment (user_id, news_id, content, comdate) values (#{userId},#{newsId},#{content},#{comdate}) 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 49 | -------------------------------------------------------------------------------- /src/main/resources/mapper/ManagerMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 13 | 14 | update manager 15 | set name=#{name},nickname=#{nickname},tel=#{tel},email=#{email} 16 | where username=#{username} 17 | 18 | 19 | update manager SET `password`=#{password} WHERE username=#{username} 20 | 21 | 24 | 25 | delete from user where id=#{id} 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 46 | 47 | delete from comment where id=#{id} 48 | 49 | 52 | 55 | 58 | 61 | 64 | -------------------------------------------------------------------------------- /src/main/resources/mapper/TypeMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 13 | 14 | 17 | 18 | 21 | 22 | 25 | 26 | 29 | 30 | 33 | 34 | 40 | 41 | 46 | -------------------------------------------------------------------------------- /src/main/resources/mapper/UserMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | insert into user (username,password,email,create_time,last_login_time) values (#{username},#{password},#{email},#{createTime},#{lastLoginTime}) 12 | 13 | 16 | 17 | 18 | 19 | SELECT LAST_INSERT_ID() 20 | 21 | update user 22 | 23 | name = #{name},nickname = #{nickname},tel = #{tel},gender = #{gender},email = #{email},birthday = #{birthday}, 24 | 25 | head_portrait = #{headPortrait}, 26 | 27 | 28 | 29 | username = #{username} 30 | 31 | 32 | 37 | 38 | 39 | UPDATE `user` SET `password`=#{password} WHERE username=#{username} 40 | 41 | 42 | 43 | update user set last_login_time=#{lastLoginTime} where username=#{username} 44 | 45 | -------------------------------------------------------------------------------- /src/main/resources/mybatis-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/main/resources/spring/spring-dao.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /src/main/resources/spring/spring-mvc.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 18 | 19 | 20 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /src/main/resources/spring/spring-service.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 15 | 16 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 9 | Archetype Created Web Application 10 | 11 | dispatcher 12 | org.springframework.web.servlet.DispatcherServlet 13 | 17 | 18 | contextConfigLocation 19 | classpath:spring/spring-*.xml 20 | 21 | 22 | 23 | dispatcher 24 | 25 | / 26 | /js/* 27 | /css/* 28 | /images/* 29 | 30 | 31 | encodingFilter 32 | 33 | org.springframework.web.filter.CharacterEncodingFilter 34 | 35 | 36 | encoding 37 | UTF-8 38 | 39 | 40 | forceRequestEncoding 41 | true 42 | 43 | 44 | forceResponseEncoding 45 | true 46 | 47 | 48 | 49 | encodingFilter 50 | /* 51 | 52 | -------------------------------------------------------------------------------- /src/main/webapp/jsp/common/common5.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 |
3 |
4 | 5 | 46 |
47 |
48 | -------------------------------------------------------------------------------- /src/main/webapp/jsp/common/footer.jsp: -------------------------------------------------------------------------------- 1 | <%-- 2 | Created by IntelliJ IDEA. 3 | User: Heali 4 | Date: 2019/6/22 5 | Time: 13:45 6 | To change this template use File | Settings | File Templates. 7 | --%> 8 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 9 | 12 | -------------------------------------------------------------------------------- /src/main/webapp/jsp/common/frontHeader.jsp: -------------------------------------------------------------------------------- 1 | <%-- 2 | Created by IntelliJ IDEA. 3 | User: Heali 4 | Date: 2019/6/22 5 | Time: 13:32 6 | To change this template use File | Settings | File Templates. 7 | --%> 8 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 9 |
10 | 13 | 27 |
28 | 57 |
58 |
59 | -------------------------------------------------------------------------------- /src/main/webapp/jsp/common/header.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 |
3 | 6 | 14 |
15 | -------------------------------------------------------------------------------- /src/main/webapp/jsp/common/menu.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 |
3 |
4 | 5 | 45 |
46 |
47 | -------------------------------------------------------------------------------- /src/main/webapp/jsp/common/menu2.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 |
3 |
4 | 5 | 45 |
46 |
47 | -------------------------------------------------------------------------------- /src/main/webapp/jsp/common/menu3.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 |
3 |
4 | 5 | 45 |
46 |
47 | -------------------------------------------------------------------------------- /src/main/webapp/jsp/common/menu4.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 |
3 |
4 | 5 | 45 |
46 |
47 | -------------------------------------------------------------------------------- /src/main/webapp/jsp/common/menu5.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 |
3 |
4 | 5 | 45 |
46 |
47 | -------------------------------------------------------------------------------- /src/main/webapp/jsp/common/resources.jsp: -------------------------------------------------------------------------------- 1 | <%-- 2 | Created by IntelliJ IDEA. 3 | User: Heali 4 | Date: 2019/6/11 5 | Time: 11:44 6 | To change this template use File | Settings | File Templates. 7 | --%> 8 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/main/webapp/jsp/error.jsp: -------------------------------------------------------------------------------- 1 | <%-- 2 | Created by IntelliJ IDEA. 3 | User: Heali 4 | Date: 2019/6/19 5 | Time: 17:09 6 | To change this template use File | Settings | File Templates. 7 | --%> 8 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 9 | 10 | 11 | 403 Forbidden 12 | 13 | 32 | 33 | 34 |
35 |
36 |

403 Forbidden

37 |
38 |
39 | 对不起,你还未登录,没有访问权限
40 | 用户登录
41 | 管理员登录 42 |
43 |
44 | 45 | 46 | -------------------------------------------------------------------------------- /src/main/webapp/jsp/manage/commentManage.jsp: -------------------------------------------------------------------------------- 1 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 2 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 3 | <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 4 | 5 | 6 | 7 | 8 | 9 | 新闻管理系统后台 10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | <%-- 头部--%> 18 | 19 | 20 | 21 |
22 | 23 |
24 |

评论管理:评论列表

25 |
26 |
27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 67 | 68 | 69 |
id用户名新闻名评论类容评论时间操作
${obj.id}${obj.user.username}${obj.news.name}${obj.content}删除
51 |

52 | 每页显示5条记录, 53 | 共${pageInfo.total}条, 54 | 当前${pageInfo.pageNum}页,总${pageInfo.pages}页 55 |

56 |

57 | 第一页 58 | 59 | 上一页 60 | 61 | 62 | 下一页 63 | 64 | 最后页 65 |

66 |
70 |
71 |
72 |
73 |
74 | 75 | 81 |
82 | 83 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /src/main/webapp/jsp/manage/userManage.jsp: -------------------------------------------------------------------------------- 1 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 2 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 3 | 4 | 5 | 6 | 7 | 8 | 新闻管理系统后台 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | <%-- 头部--%> 17 | 18 | 19 | 20 |
21 | 22 |
23 |

用户管理:用户列表

24 |
25 |
26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 68 | 69 | 70 |
id用户名网名联系电话性别邮箱操作
${obj.id}${obj.username}${obj.nickname}${obj.tel}${obj.gender}${obj.email}删除
52 |

53 | 每页显示5条记录, 54 | 共${pageInfo.total}条, 55 | 当前${pageInfo.pageNum}页,总${pageInfo.pages}页 56 |

57 |

58 | 第一页 59 | 60 | 上一页 61 | 62 | 63 | 下一页 64 | 65 | 最后页 66 |

67 |
71 |
72 |
73 |
74 |
75 | 76 | 82 |
83 | 84 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /src/main/webapp/jsp/managerLogin.jsp: -------------------------------------------------------------------------------- 1 | <%-- 2 | Created by IntelliJ IDEA. 3 | User: Heali 4 | Date: 2019/6/21 5 | Time: 10:43 6 | To change this template use File | Settings | File Templates. 7 | --%> 8 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 9 | 10 | 11 | 闲看新闻后台-登录 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 26 | 27 | 28 |
29 |
30 | 31 |
32 | 65 |
66 | 67 | 68 | -------------------------------------------------------------------------------- /src/main/webapp/jsp/news/typeInfo.jsp: -------------------------------------------------------------------------------- 1 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 2 | <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 3 | <%-- 4 | Created by IntelliJ IDEA. 5 | User: Heali 6 | Date: 2019/6/19 7 | Time: 10:51 8 | To change this template use File | Settings | File Templates. 9 | --%> 10 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 11 | 12 | 13 | 闲看新闻-类别 14 | 15 | 16 | 17 | 18 | 25 | 26 | 27 | 28 |
29 | 54 |
55 |
56 | 57 | 首页 58 | 59 | 60 | 上一页 61 | 62 | 63 | 下一页 64 | 65 | 66 | 尾页 67 | 68 |
69 |
70 |
71 | 72 | 73 | 81 | -------------------------------------------------------------------------------- /src/main/webapp/jsp/type/addType.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 | 3 | 4 | 5 | 6 | 7 | 新闻管理系统后台 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | <%-- 头部--%> 16 | 17 | 18 | 19 |
20 | 21 |
22 |

新闻类别:增加类别

23 |
24 |
25 | 类别列表 26 |
27 |
28 |
29 |
30 |

${msg}

31 |
32 | 33 |
34 |
35 | 36 |
37 |
38 |
39 |
40 |
41 |
42 | 43 | 49 |
50 | 51 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /src/main/webapp/jsp/type/modify.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 | 3 | 4 | 5 | 6 | 7 | 新闻管理系统后台 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | <%-- 头部--%> 16 | 17 | 18 | 19 |
20 | 21 |
22 |

新闻类别:修改类别

23 |
24 |
25 | 类别列表 26 |
27 |
28 |
29 | 30 |
31 |

${msg}

32 |
33 | 34 |
35 |
36 | 37 |
38 |
39 |
40 |
41 |
42 |
43 | 47 |
48 | 49 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /src/main/webapp/static/images/04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-chenliang/ssm_project1/83462b9aea4aa35db5476df63be6fa5a6db9cb04/src/main/webapp/static/images/04.jpg -------------------------------------------------------------------------------- /src/main/webapp/static/images/07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-chenliang/ssm_project1/83462b9aea4aa35db5476df63be6fa5a6db9cb04/src/main/webapp/static/images/07.jpg -------------------------------------------------------------------------------- /src/main/webapp/static/images/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-chenliang/ssm_project1/83462b9aea4aa35db5476df63be6fa5a6db9cb04/src/main/webapp/static/images/1.jpg -------------------------------------------------------------------------------- /src/main/webapp/static/images/bg3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-chenliang/ssm_project1/83462b9aea4aa35db5476df63be6fa5a6db9cb04/src/main/webapp/static/images/bg3.jpg -------------------------------------------------------------------------------- /src/main/webapp/static/images/icon-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-chenliang/ssm_project1/83462b9aea4aa35db5476df63be6fa5a6db9cb04/src/main/webapp/static/images/icon-4.png -------------------------------------------------------------------------------- /src/main/webapp/static/images/icon-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-chenliang/ssm_project1/83462b9aea4aa35db5476df63be6fa5a6db9cb04/src/main/webapp/static/images/icon-5.png -------------------------------------------------------------------------------- /src/main/webapp/static/images/tupian.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-chenliang/ssm_project1/83462b9aea4aa35db5476df63be6fa5a6db9cb04/src/main/webapp/static/images/tupian.jpg -------------------------------------------------------------------------------- /src/main/webapp/static/images/xiankan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-chenliang/ssm_project1/83462b9aea4aa35db5476df63be6fa5a6db9cb04/src/main/webapp/static/images/xiankan.jpg -------------------------------------------------------------------------------- /src/main/webapp/static/images/xiankan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-chenliang/ssm_project1/83462b9aea4aa35db5476df63be6fa5a6db9cb04/src/main/webapp/static/images/xiankan.png -------------------------------------------------------------------------------- /src/main/webapp/static/js/checkbox.js: -------------------------------------------------------------------------------- 1 | window.onload = function(){ 2 | var btn1 = document.getElementById("selectAll"); 3 | var btn2 = document.getElementById("selectNone"); 4 | var btn3 = document.getElementById("selectReverse"); 5 | var input = document.getElementsByName("check"); 6 | // 全选 7 | btn1.onclick = function(){ 8 | // 如何通过js操作复选框 9 | for(var i=0;i=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.elemItem.length<=1||(e.indicator(),e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['",'"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['
    ',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("")}),i.join("")}(),"
"].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("add",a-n.index):a/g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('
  1. '+o.replace(/[\r\t\n]+/g,"
  2. ")+"
"),c.find(">.layui-code-h3")[0]||c.prepend('

'+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"

");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss"); -------------------------------------------------------------------------------- /src/main/webapp/static/layui/lay/modules/flow.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.4.5 MIT License By https://www.layui.com */ 2 | ;layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;su)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)}); -------------------------------------------------------------------------------- /src/main/webapp/static/layui/lay/modules/laytpl.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.4.5 MIT License By https://www.layui.com */ 2 | ;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)}); -------------------------------------------------------------------------------- /src/main/webapp/static/layui/lay/modules/rate.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.4.5 MIT License By https://www.layui.com */ 2 | ;layui.define("jquery",function(e){"use strict";var a=layui.jquery,i={config:{},index:layui.rate?layui.rate.index+1e4:0,set:function(e){var i=this;return i.config=a.extend({},i.config,e),i},on:function(e,a){return layui.onevent.call(this,n,e,a)}},l=function(){var e=this,a=e.config;return{setvalue:function(a){e.setvalue.call(e,a)},config:a}},n="rate",t="layui-rate",o="layui-icon-rate",s="layui-icon-rate-solid",u="layui-icon-rate-half",r="layui-icon-rate-solid layui-icon-rate-half",c="layui-icon-rate-solid layui-icon-rate",f="layui-icon-rate layui-icon-rate-half",v=function(e){var l=this;l.index=++i.index,l.config=a.extend({},l.config,i.config,e),l.render()};v.prototype.config={length:5,text:!1,readonly:!1,half:!1,value:0,theme:""},v.prototype.render=function(){var e=this,i=e.config,l=i.theme?'style="color: '+i.theme+';"':"";i.elem=a(i.elem),parseInt(i.value)!==i.value&&(i.half||(i.value=Math.ceil(i.value)-i.value<.5?Math.ceil(i.value):Math.floor(i.value)));for(var n='
    ",u=1;u<=i.length;u++){var r='
  • ";i.half&&parseInt(i.value)!==i.value&&u==Math.ceil(i.value)?n=n+'
  • ":n+=r}n+="
"+(i.text?''+i.value+"星":"")+"";var c=i.elem,f=c.next("."+t);f[0]&&f.remove(),e.elemTemp=a(n),i.span=e.elemTemp.next("span"),i.setText&&i.setText(i.value),c.html(e.elemTemp),c.addClass("layui-inline"),i.readonly||e.action()},v.prototype.setvalue=function(e){var a=this,i=a.config;i.value=e,a.render()},v.prototype.action=function(){var e=this,i=e.config,l=e.elemTemp,n=l.find("i").width();l.children("li").each(function(e){var t=e+1,v=a(this);v.on("click",function(e){if(i.value=t,i.half){var o=e.pageX-a(this).offset().left;o<=n/2&&(i.value=i.value-.5)}i.text&&l.next("span").text(i.value+"星"),i.choose&&i.choose(i.value),i.setText&&i.setText(i.value)}),v.on("mousemove",function(e){if(l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+t+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half){var c=e.pageX-a(this).offset().left;c<=n/2&&v.children("i").addClass(u).removeClass(s)}}),v.on("mouseleave",function(){l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+Math.floor(i.value)+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half&&parseInt(i.value)!==i.value&&l.children("li:eq("+Math.floor(i.value)+")").children("i").addClass(u).removeClass(c)})})},v.prototype.events=function(){var e=this;e.config},i.render=function(e){var a=new v(e);return l.call(a)},e(n,i)}); -------------------------------------------------------------------------------- /src/main/webapp/static/layui/lay/modules/tree.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.4.5 MIT License By https://www.layui.com */ 2 | ;layui.define("jquery",function(e){"use strict";var o=layui.$,a=layui.hint(),i="layui-tree-enter",r=function(e){this.options=e},t={arrow:["",""],checkbox:["",""],radio:["",""],branch:["",""],leaf:""};r.prototype.init=function(e){var o=this;e.addClass("layui-box layui-tree"),o.options.skin&&e.addClass("layui-tree-skin-"+o.options.skin),o.tree(e),o.on(e)},r.prototype.tree=function(e,a){var i=this,r=i.options,n=a||r.nodes;layui.each(n,function(a,n){var l=n.children&&n.children.length>0,c=o('
    '),s=o(["
  • ",function(){return l?''+(n.spread?t.arrow[1]:t.arrow[0])+"":""}(),function(){return r.check?''+("checkbox"===r.check?t.checkbox[0]:"radio"===r.check?t.radio[0]:"")+"":""}(),function(){return'"+(''+(l?n.spread?t.branch[1]:t.branch[0]:t.leaf)+"")+(""+(n.name||"未命名")+"")}(),"
  • "].join(""));l&&(s.append(c),i.tree(c,n.children)),e.append(s),"function"==typeof r.click&&i.click(s,n),i.spread(s,n),r.drag&&i.drag(s,n)})},r.prototype.click=function(e,o){var a=this,i=a.options;e.children("a").on("click",function(e){layui.stope(e),i.click(o)})},r.prototype.spread=function(e,o){var a=this,i=(a.options,e.children(".layui-tree-spread")),r=e.children("ul"),n=e.children("a"),l=function(){e.data("spread")?(e.data("spread",null),r.removeClass("layui-show"),i.html(t.arrow[0]),n.find(".layui-icon").html(t.branch[0])):(e.data("spread",!0),r.addClass("layui-show"),i.html(t.arrow[1]),n.find(".layui-icon").html(t.branch[1]))};r[0]&&(i.on("click",l),n.on("dblclick",l))},r.prototype.on=function(e){var a=this,r=a.options,t="layui-tree-drag";e.find("i").on("selectstart",function(e){return!1}),r.drag&&o(document).on("mousemove",function(e){var i=a.move;if(i.from){var r=(i.to,o('
    '));e.preventDefault(),o("."+t)[0]||o("body").append(r);var n=o("."+t)[0]?o("."+t):r;n.addClass("layui-show").html(i.from.elem.children("a").html()),n.css({left:e.pageX+10,top:e.pageY+10})}}).on("mouseup",function(){var e=a.move;e.from&&(e.from.elem.children("a").removeClass(i),e.to&&e.to.elem.children("a").removeClass(i),a.move={},o("."+t).remove())})},r.prototype.move={},r.prototype.drag=function(e,a){var r=this,t=(r.options,e.children("a")),n=function(){var t=o(this),n=r.move;n.from&&(n.to={item:a,elem:e},t.addClass(i))};t.on("mousedown",function(){var o=r.move;o.from={item:a,elem:e}}),t.on("mouseenter",n).on("mousemove",n).on("mouseleave",function(){var e=o(this),a=r.move;a.from&&(delete a.to,e.removeClass(i))})},e("tree",function(e){var i=new r(e=e||{}),t=o(e.elem);return t[0]?void i.init(t):a.error("layui.tree 没有找到"+e.elem+"元素")})}); -------------------------------------------------------------------------------- /src/main/webapp/static/layui/lay/modules/util.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.4.5 MIT License By https://www.layui.com */ 2 | ;layui.define("jquery",function(t){"use strict";var e=layui.$,i={fixbar:function(t){var i,a,n="layui-fixbar",r="layui-fixbar-top",o=e(document),l=e("body");t=e.extend({showHeight:200},t),t.bar1=t.bar1===!0?"":t.bar1,t.bar2=t.bar2===!0?"":t.bar2,t.bgcolor=t.bgcolor?"background-color:"+t.bgcolor:"";var c=[t.bar1,t.bar2,""],g=e(['
      ',t.bar1?'
    • '+c[0]+"
    • ":"",t.bar2?'
    • '+c[1]+"
    • ":"",'
    • '+c[2]+"
    • ","
    "].join("")),s=g.find("."+r),u=function(){var e=o.scrollTop();e>=t.showHeight?i||(s.show(),i=1):i&&(s.hide(),i=0)};e("."+n)[0]||("object"==typeof t.css&&g.css(t.css),l.append(g),u(),g.find("li").on("click",function(){var i=e(this),a=i.attr("lay-type");"top"===a&&e("html,body").animate({scrollTop:0},200),t.click&&t.click.call(this,a)}),o.on("scroll",function(){clearTimeout(a),a=setTimeout(function(){u()},100)}))},countdown:function(t,e,i){var a=this,n="function"==typeof e,r=new Date(t).getTime(),o=new Date(!e||n?(new Date).getTime():e).getTime(),l=r-o,c=[Math.floor(l/864e5),Math.floor(l/36e5)%24,Math.floor(l/6e4)%60,Math.floor(l/1e3)%60];n&&(i=e);var g=setTimeout(function(){a.countdown(t,o+1e3,i)},1e3);return i&&i(l>0?c:[0,0,0,0],e,g),l<=0&&clearTimeout(g),g},timeAgo:function(t,e){var i=this,a=[[],[]],n=(new Date).getTime()-new Date(t).getTime();return n>6912e5?(n=new Date(t),a[0][0]=i.digit(n.getFullYear(),4),a[0][1]=i.digit(n.getMonth()+1),a[0][2]=i.digit(n.getDate()),e||(a[1][0]=i.digit(n.getHours()),a[1][1]=i.digit(n.getMinutes()),a[1][2]=i.digit(n.getSeconds())),a[0].join("-")+" "+a[1].join(":")):n>=864e5?(n/1e3/60/60/24|0)+"天前":n>=36e5?(n/1e3/60/60|0)+"小时前":n>=12e4?(n/1e3/60|0)+"分钟前":n<0?"未来":"刚刚"},digit:function(t,e){var i="";t=String(t),e=e||2;for(var a=t.length;a/g,">").replace(/'/g,"'").replace(/"/g,""")}};!function(t,e,i){"$:nomunge";function a(){n=e[l](function(){r.each(function(){var e=t(this),i=e.width(),a=e.height(),n=t.data(this,g);(i!==n.w||a!==n.h)&&e.trigger(c,[n.w=i,n.h=a])}),a()},o[s])}var n,r=t([]),o=t.resize=t.extend(t.resize,{}),l="setTimeout",c="resize",g=c+"-special-event",s="delay",u="throttleWindow";o[s]=250,o[u]=!0,t.event.special[c]={setup:function(){if(!o[u]&&this[l])return!1;var e=t(this);r=r.add(e),t.data(this,g,{w:e.width(),h:e.height()}),1===r.length&&a()},teardown:function(){if(!o[u]&&this[l])return!1;var e=t(this);r=r.not(e),e.removeData(g),r.length||clearTimeout(n)},add:function(e){function a(e,a,r){var o=t(this),l=t.data(this,g)||{};l.w=a!==i?a:o.width(),l.h=r!==i?r:o.height(),n.apply(this,arguments)}if(!o[u]&&this[l])return!1;var n;return t.isFunction(e)?(n=e,a):(n=e.handler,void(e.handler=a))}}}(e,window),t("util",i)}); -------------------------------------------------------------------------------- /src/main/webapp/static/manager/index.css: -------------------------------------------------------------------------------- 1 | .userInfo-content-detail{ 2 | width: 100%; 3 | height: auto; 4 | padding: 20px; 5 | } 6 | .platform-statistics{ 7 | width: 100%; 8 | height: 235px; 9 | } 10 | .platform-statistics>div{ 11 | float: left; 12 | } 13 | .statistics-count{ 14 | width: 500px; 15 | height: 235px; 16 | } 17 | .statistics-count li{ 18 | float: left; 19 | width: 220px; 20 | height: 110px; 21 | margin: 0 20px 15px 0; 22 | padding: 20px; 23 | cursor: pointer; 24 | } 25 | .statistics-count li>div{ 26 | float: left; 27 | color: #FFFFFF; 28 | } 29 | .count-item-left{ 30 | width: 50px; 31 | height: 70px; 32 | text-align: center; 33 | } 34 | .glyphicon-list-alt{ 35 | font-size: 45px; 36 | line-height: 70px; 37 | /*color: #949FB1;*/ 38 | opacity: 0.5; 39 | } 40 | .count-item-right{ 41 | margin-left: 20px; 42 | height: 70px; 43 | } 44 | .statistics-charts{ 45 | width: 380px; 46 | height: 100%; 47 | background-color: #ecf0f5; 48 | } 49 | .statistics-charts-header{ 50 | height: 40px; 51 | border-bottom: 1px solid #DDDDDD; 52 | line-height: 40px; 53 | color: #777; 54 | padding: 0 10px; 55 | } 56 | .glyphicon-globe{ 57 | margin-right: 15px; 58 | } 59 | .user-detail{ 60 | width: 100%; 61 | height: auto; 62 | } 63 | .user-detail>li{ 64 | height: 50px; 65 | width: 425px; 66 | margin-bottom: 20px; 67 | margin-right: 30px; 68 | position: relative; 69 | } 70 | input[type='text'],input[type='date'],input[type='email']{ 71 | outline: none; 72 | width: 400px; 73 | height: 50px; 74 | border: 1px solid #ddd; 75 | line-height: 50px; 76 | padding-left: 120px; 77 | } 78 | .button{ 79 | width: 100px; 80 | height: 50px; 81 | position: absolute; 82 | top: 0; 83 | left: 0; 84 | outline: none; 85 | border:none; 86 | border-right: 1px solid #DDDDDD; 87 | color: #578ebe; 88 | } 89 | .btn{ 90 | height: 40px; 91 | width: 100px; 92 | background-color: #DDDDDD; 93 | margin-right: 30px; 94 | color: #ffffff; 95 | } -------------------------------------------------------------------------------- /src/main/webapp/static/manager/security.css: -------------------------------------------------------------------------------- 1 | .userInfo-content-detail{ 2 | width: 100%; 3 | height: auto; 4 | padding: 20px; 5 | } 6 | .user-detail{ 7 | width: 100%; 8 | height: auto; 9 | } 10 | .user-detail>li{ 11 | float: left; 12 | height: 50px; 13 | width: 425px; 14 | margin-bottom: 20px; 15 | margin-right: 30px; 16 | position: relative; 17 | } 18 | input[type='text'],input[type='date']{ 19 | outline: none; 20 | width: 400px; 21 | height: 50px; 22 | border: 1px solid #ddd; 23 | line-height: 50px; 24 | padding-left: 120px; 25 | } 26 | .button{ 27 | width: 100px; 28 | height: 50px; 29 | position: absolute; 30 | top: 0; 31 | left: 0; 32 | outline: none; 33 | border:none; 34 | border-right: 1px solid #DDDDDD; 35 | color: #578ebe; 36 | } 37 | .btn{ 38 | height: 40px; 39 | width: 100px; 40 | background-color: #DDDDDD; 41 | margin-right: 30px; 42 | } 43 | .security-manage{ 44 | width: 100%; 45 | height: auto; 46 | } 47 | .security-manage>li{ 48 | width: 100%; 49 | height: 50px; 50 | margin-bottom: 20px; 51 | position: relative; 52 | } 53 | input[type='password']{ 54 | outline: none; 55 | width: 400px; 56 | height: 50px; 57 | border: 1px solid #ddd; 58 | line-height: 50px; 59 | padding-left: 120px; 60 | } 61 | .glyphicon-remove-circle, 62 | .glyphicon-ok-circle{ 63 | margin-left: 10px; 64 | margin-right: 5px; 65 | } -------------------------------------------------------------------------------- /src/main/webapp/static/manager/userManage.css: -------------------------------------------------------------------------------- 1 | .table{ 2 | width: 90%; 3 | text-align: center; 4 | margin-top: 20px; 5 | border: 1px solid lightgray; 6 | border-collapse: collapse; 7 | margin-left: 30px; 8 | } 9 | th{ 10 | text-align: center; 11 | height: 45px; 12 | background-color: #14aae4; 13 | color: #FFFFFF; 14 | } 15 | th:nth-child(1){ 16 | width: 120px; 17 | } 18 | th:nth-child(2){ 19 | width: 140px; 20 | } 21 | th:nth-child(3){ 22 | width: 240px; 23 | } 24 | table,th,td{ 25 | border: 1px solid lightgray; 26 | } -------------------------------------------------------------------------------- /src/main/webapp/static/news/add.css: -------------------------------------------------------------------------------- 1 | .add-content{ 2 | margin-top: 20px; 3 | margin-left: 30px; 4 | } 5 | .add-content-input{ 6 | margin-top: 30px; 7 | } 8 | .submit,.reset{ 9 | float: left; 10 | width: 100px; 11 | text-align: center; 12 | margin-top: 20px; 13 | } 14 | .form-control1{ 15 | width: 450px; 16 | } 17 | .form-control2{ 18 | width: 450px; 19 | } 20 | .form-control3{ 21 | width: 450px; 22 | } 23 | .form-control4{ 24 | width: 400px; 25 | } 26 | .form-control5{ 27 | width: 400px; 28 | } 29 | .form-control6{ 30 | width: 250px; 31 | } 32 | .form-control7{ 33 | width: 200px; 34 | } 35 | .form-control8{ 36 | width: 150px; 37 | } 38 | 39 | /* 文件上传按钮 */ 40 | .file { 41 | position: relative; 42 | line-height: 34px; 43 | width: 250px; 44 | height: 34px; 45 | } 46 | .userdefined-file { 47 | position: absolute; 48 | top: 0; 49 | z-index: 2; 50 | width: 300px; 51 | height: 34px; 52 | line-height: 40px; 53 | font-size: 0; /*应对子元素为 inline-block 引起的外边距*/ 54 | } 55 | .userdefined-file input[type="text"] { 56 | display: inline-block; 57 | vertical-align: middle; 58 | padding-right: 14px; 59 | padding-left: 14px; 60 | width: 170px; 61 | box-sizing: border-box; 62 | border: 1px solid #ccc; 63 | height: 34px; 64 | line-height: 34px; 65 | font-size: 14px; 66 | overflow: hidden; 67 | text-overflow: ellipsis; 68 | white-space: nowrap; 69 | } 70 | .userdefined-file button { 71 | display: inline-block; 72 | vertical-align: middle; 73 | width: 80px; 74 | text-align: center; 75 | height: 34px; 76 | line-height: 34px; 77 | font-size: 14px; 78 | background-color: #f54; 79 | border: none; 80 | color: #fff; 81 | cursor: pointer; 82 | } 83 | .file input[type="file"] { 84 | position: absolute; 85 | top: 0; 86 | left: 0; 87 | z-index: 3; 88 | opacity: 0; 89 | width: 250px; 90 | height: 34px; 91 | line-height: 34px; 92 | cursor: pointer; 93 | } 94 | 95 | .btn{ 96 | width: 82px; 97 | } -------------------------------------------------------------------------------- /src/main/webapp/static/news/index.css: -------------------------------------------------------------------------------- 1 | .header{ 2 | margin-top: 20px; 3 | width: 1000px; 4 | height: 34px; 5 | margin-left: 30px; 6 | } 7 | .header-right{ 8 | height: 34px; 9 | float: right; 10 | /*overflow: hidden;*/ 11 | position: relative; 12 | } 13 | .search{ 14 | outline: none; 15 | -webkit-appearance: none; 16 | border-radius: 0; 17 | height: 32px; 18 | border: 1px solid #FF0036; 19 | width: 270px; 20 | color: #888888; 21 | padding-left: 10px; 22 | } 23 | .search-button{ 24 | width: 70px; 25 | height: 32px; 26 | line-height: 32px; 27 | text-align: center; 28 | outline: none; 29 | border: none; 30 | background-color: #FF0036; 31 | border: 1px solid #FF0036; 32 | color: #FFFFFF; 33 | position: absolute; 34 | top: 0; 35 | right: 0; 36 | } 37 | #search-button:hover, 38 | #search-button:visited 39 | #search-button:link 40 | #search-button:active{ 41 | text-underline: none; 42 | color: #FFFFFF; 43 | cursor: pointer; 44 | text-decoration: none; 45 | } 46 | .header-left{ 47 | height: 34px; 48 | float: left; 49 | } 50 | 51 | .btn{ 52 | margin-right: 20px; 53 | } 54 | th,td{ 55 | text-align: center; 56 | height: 51px; 57 | line-height: 51px; 58 | } 59 | b{ 60 | margin-left: 10px; 61 | margin-right: 10px; 62 | } 63 | .page{ 64 | float: right; 65 | margin-right: 200px; 66 | } 67 | .page>a{ 68 | margin-right: 20px; 69 | } 70 | 71 | .request-code{ 72 | position: fixed; 73 | width: 600px; 74 | height: auto; 75 | background-color: #ffffff; 76 | z-index: 9999; 77 | display: none; 78 | } 79 | .request-code-header{ 80 | width: 100%; 81 | height: 50px; 82 | line-height: 42px; 83 | border-bottom: 1px solid #eee; 84 | overflow: hidden; 85 | background-color: #949FB1; 86 | border-radius: 2px 2px 0 0; 87 | color: #FFFFFF; 88 | } 89 | .news-name{ 90 | float: left; 91 | line-height: 50px; 92 | margin-left: 30px; 93 | font-weight: bold; 94 | } 95 | #close{ 96 | float: right; 97 | line-height: 50px; 98 | margin-right: 30px; 99 | cursor: pointer; 100 | } 101 | .request-code-content{ 102 | height: 450px; 103 | width: 100%; 104 | border: 1px solid #949FB1; 105 | } 106 | 107 | .news-info{ 108 | width: 100%; 109 | height: 290px; 110 | padding: 0 20px; 111 | } 112 | #news-name{ 113 | width: 558px; 114 | line-height: 40px; 115 | overflow: hidden; 116 | text-overflow:ellipsis; 117 | white-space: nowrap; 118 | font-size: 18px; 119 | font-weight: bolder; 120 | text-align: center; 121 | } 122 | .news-info>div{ 123 | float: left; 124 | } 125 | .news-img-info{ 126 | height: 250px; 127 | width: 250px; 128 | } 129 | #news-img{ 130 | height: 250px; 131 | width: 250px; 132 | } 133 | .news-other-info{ 134 | margin-left: 20px; 135 | height: 250px; 136 | width: 280px; 137 | } 138 | .news-other-info>ul>li{ 139 | height: 40px; 140 | line-height: 40px; 141 | } 142 | .span-name{ 143 | font-weight: bold; 144 | overflow: hidden; 145 | } 146 | .news-other-info>ul>li dt,.news-other-info>ul>li dd{ 147 | float: left; 148 | } 149 | .news-content{ 150 | width: 100%; 151 | padding: 0 20px; 152 | line-height: 25px; 153 | max-height: 200px; 154 | margin-top: 10px; 155 | display: -webkit-box; 156 | -webkit-box-orient: vertical; 157 | -webkit-line-clamp: 6; 158 | overflow: hidden; 159 | } 160 | -------------------------------------------------------------------------------- /src/main/webapp/static/type/addType.css: -------------------------------------------------------------------------------- 1 | .add-content{ 2 | margin-top: 20px; 3 | margin-left: 30px; 4 | } 5 | .add-content-input{ 6 | margin-top: 30px; 7 | } 8 | .form-control{ 9 | width: 300px; 10 | } 11 | .submit,.reset{ 12 | float: left; 13 | width: 100px; 14 | text-align: center; 15 | margin-top: 20px; 16 | } -------------------------------------------------------------------------------- /src/main/webapp/static/type/index.css: -------------------------------------------------------------------------------- 1 | .header{ 2 | margin-top: 20px; 3 | width: 880px; 4 | height: 34px; 5 | margin-left: 30px; 6 | } 7 | .header-right{ 8 | height: 34px; 9 | float: right; 10 | /*overflow: hidden;*/ 11 | position: relative; 12 | } 13 | .search{ 14 | outline: none; 15 | -webkit-appearance: none; 16 | border-radius: 0; 17 | height: 32px; 18 | border: 1px solid #FF0036; 19 | width: 270px; 20 | color: #888888; 21 | padding-left: 10px; 22 | } 23 | .search-button{ 24 | width: 70px; 25 | height: 32px; 26 | outline: none; 27 | border: none; 28 | background-color: #FF0036; 29 | border: 3px solid #FF0036; 30 | color: #FFFFFF; 31 | position: absolute; 32 | top: 0; 33 | right: 0; 34 | } 35 | .header-left{ 36 | height: 34px; 37 | float: left; 38 | } 39 | .table{ 40 | width: 880px; 41 | text-align: center; 42 | margin-top: 20px; 43 | border: 1px solid lightgray; 44 | border-collapse: collapse; 45 | margin-left: 30px; 46 | } 47 | th{ 48 | text-align: center; 49 | height: 45px; 50 | background-color: #44b6ae; 51 | color: #FFFFFF; 52 | } 53 | th:nth-child(1){ 54 | width: 120px; 55 | } 56 | th:nth-child(2){ 57 | width: 140px; 58 | } 59 | th:nth-child(3){ 60 | width: 240px; 61 | } 62 | table,th,td{ 63 | border: 1px solid lightgray; 64 | } 65 | .btn-info{ 66 | margin-right: 50px; 67 | } 68 | 69 | .btn{ 70 | width: 82px; 71 | } -------------------------------------------------------------------------------- /src/main/webapp/static/webfront/login.css: -------------------------------------------------------------------------------- 1 | .container-box{ 2 | width: 400px; 3 | height: auto; 4 | text-align: center; 5 | margin: 80px auto; 6 | } 7 | .web-title{ 8 | height: 75px; 9 | line-height: 50px; 10 | width: 100%; 11 | text-align: center; 12 | } 13 | .web-title>label{ 14 | color: #fff; 15 | font-size: 35px; 16 | font-weight: bold; 17 | text-shadow: 0px 1px 1px #555 18 | } 19 | .login{ 20 | width: 400px; 21 | margin-top: 30px; 22 | height: auto; 23 | background-color: #fff; 24 | } 25 | .header{ 26 | width: 400px; 27 | height: 50px; 28 | border-bottom: 1px solid #e2e2e2; 29 | position: relative; 30 | font-family: "Microsoft Yahei"; 31 | } 32 | .switch{ 33 | width: 230px; 34 | height: 50px; 35 | font-size: 16px; 36 | position: relative; 37 | margin: 0 auto; 38 | } 39 | a{ 40 | text-decoration: none; 41 | } 42 | a:link,a:visited,a:hover { 43 | cursor: pointer; 44 | text-decoration: none; 45 | color: #999; 46 | } 47 | a.q-login{ 48 | width: 70px; 49 | color: #999; 50 | display: inline-block; 51 | height: 50px; 52 | line-height: 50px; 53 | outline: none; 54 | } 55 | a.q-login:nth-child(1){ 56 | margin-right: 80px; 57 | } 58 | a.q-login-focus{ 59 | color: #333; 60 | } 61 | .switch_bottom{ 62 | position: absolute; 63 | width: 70px; 64 | left: 3px; 65 | bottom: 0; 66 | border-bottom: 2px solid #00CCFF; 67 | } 68 | .login-content{ 69 | width: 400px; 70 | height: auto; 71 | display: none; 72 | text-align: left; 73 | padding-bottom: 15px; 74 | } 75 | .login-item{ 76 | width: 300px; 77 | height: 40px; 78 | margin:0 auto; 79 | background-color: #3CB8AE; 80 | position: relative; 81 | margin-bottom:20px; 82 | } 83 | .title{ 84 | width: 70px; 85 | text-align: center; 86 | float: left; 87 | height: 40px; 88 | line-height: 40px; 89 | } 90 | input[type = 'text'],input[type = 'password']{ 91 | outline: none; 92 | border: 1px solid #ddd; 93 | height: 40px; 94 | width: 226px; 95 | padding: 10px; 96 | color: #333; 97 | position: relative; 98 | float: right; 99 | } 100 | .error{ 101 | clear: both; 102 | width: 300px; 103 | margin: 0 auto; 104 | height: 20px; 105 | line-height: 20px; 106 | text-align: left; 107 | color: red; 108 | } 109 | .remember-pwd{ 110 | width: 300px; 111 | height: 20px; 112 | margin:0 auto; 113 | text-align: center; 114 | line-height: 20px; 115 | margin-bottom: 10px; 116 | } 117 | input[type="checkbox"]{ 118 | transform: scale(1.2); 119 | margin-right: 15px; 120 | outline: none; 121 | border: 1px solid #ddd; 122 | } 123 | .submit-btn{ 124 | width: 300px; 125 | height: 40px; 126 | margin:0 auto; 127 | text-align: center; 128 | } 129 | .btn-success{ 130 | height: 40px; 131 | width: 120px; 132 | background-color: #3CB8AE; 133 | } 134 | .forget-pwd{ 135 | width: 300px; 136 | height: 20px; 137 | line-height: 20px; 138 | margin:10px auto; 139 | text-align: center; 140 | } 141 | label.msg{ 142 | position: absolute; 143 | height: 40px; 144 | line-height: 40px; 145 | width: 20px; 146 | top: 0; 147 | right: 0; 148 | padding: 13px 3px; 149 | font-weight: normal; 150 | color: green; 151 | background-color: #fff; 152 | border-left: 1px solid #ddd; 153 | } 154 | .message-info{ 155 | width: 300px; 156 | height: 40px; 157 | margin:20px auto; 158 | background-color: #fff; 159 | position: relative; 160 | margin-bottom:20px; 161 | } 162 | .message-info-show{ 163 | width: 280px; 164 | height: 40px; 165 | background-color: #fff; 166 | position: relative; 167 | border: 1px solid #ddd; 168 | line-height: 40px; 169 | text-align: center; 170 | color: #555; 171 | } -------------------------------------------------------------------------------- /src/main/webapp/static/webfront/managerLogin.css: -------------------------------------------------------------------------------- 1 | .container-box{ 2 | width: 400px; 3 | height: auto; 4 | text-align: center; 5 | margin: 80px auto; 6 | } 7 | .web-title{ 8 | height: 75px; 9 | line-height: 50px; 10 | width: 100%; 11 | text-align: center; 12 | } 13 | .web-title>label{ 14 | color: #fff; 15 | font-size: 35px; 16 | font-weight: bold; 17 | text-shadow: 0px 1px 1px #555 18 | } 19 | .login{ 20 | width: 400px; 21 | margin-top: 30px; 22 | height: auto; 23 | background-color: #fff; 24 | } 25 | .header{ 26 | width: 400px; 27 | height: 50px; 28 | border-bottom: 1px solid #e2e2e2; 29 | position: relative; 30 | font-family: "Microsoft Yahei"; 31 | } 32 | .switch{ 33 | width: 230px; 34 | height: 50px; 35 | font-size: 16px; 36 | position: relative; 37 | margin: 0 auto; 38 | } 39 | a{ 40 | text-decoration: none; 41 | } 42 | a:link,a:visited,a:hover { 43 | cursor: pointer; 44 | text-decoration: none; 45 | color: #999; 46 | } 47 | a.q-login{ 48 | width: 100%; 49 | color: #999; 50 | display: inline-block; 51 | height: 50px; 52 | line-height: 50px; 53 | outline: none; 54 | } 55 | a.q-login-focus{ 56 | color: #333; 57 | } 58 | .login-content{ 59 | width: 400px; 60 | height: auto; 61 | display: none; 62 | text-align: left; 63 | padding-bottom: 15px; 64 | } 65 | .login-item{ 66 | width: 300px; 67 | height: 40px; 68 | margin:0 auto; 69 | background-color: #3CB8AE; 70 | position: relative; 71 | margin-bottom:20px; 72 | } 73 | .title{ 74 | width: 70px; 75 | text-align: center; 76 | float: left; 77 | height: 40px; 78 | line-height: 40px; 79 | } 80 | input[type = 'text'],input[type = 'password']{ 81 | outline: none; 82 | border: 1px solid #ddd; 83 | height: 40px; 84 | width: 226px; 85 | padding: 10px; 86 | color: #333; 87 | position: relative; 88 | float: right; 89 | } 90 | .error{ 91 | clear: both; 92 | width: 300px; 93 | margin: 0 auto; 94 | height: 20px; 95 | line-height: 20px; 96 | text-align: left; 97 | color: red; 98 | } 99 | .remember-pwd{ 100 | width: 300px; 101 | height: 20px; 102 | margin:0 auto; 103 | text-align: center; 104 | line-height: 20px; 105 | margin-bottom: 10px; 106 | } 107 | input[type="checkbox"]{ 108 | transform: scale(1.2); 109 | margin-right: 15px; 110 | outline: none; 111 | border: 1px solid #ddd; 112 | } 113 | .submit-btn{ 114 | width: 300px; 115 | height: 40px; 116 | margin:0 auto; 117 | text-align: center; 118 | } 119 | .btn-success{ 120 | height: 40px; 121 | width: 120px; 122 | background-color: #3CB8AE; 123 | } 124 | .forget-pwd{ 125 | width: 300px; 126 | height: 20px; 127 | line-height: 20px; 128 | margin:10px auto; 129 | text-align: center; 130 | } 131 | label.msg{ 132 | position: absolute; 133 | height: 40px; 134 | line-height: 40px; 135 | width: 20px; 136 | top: 0; 137 | right: 0; 138 | padding: 13px 3px; 139 | font-weight: normal; 140 | color: green; 141 | background-color: #fff; 142 | border-left: 1px solid #ddd; 143 | } 144 | .message-info{ 145 | width: 300px; 146 | height: 40px; 147 | margin:20px auto; 148 | background-color: #fff; 149 | position: relative; 150 | margin-bottom:20px; 151 | } 152 | .message-info-show{ 153 | width: 280px; 154 | height: 40px; 155 | background-color: #fff; 156 | position: relative; 157 | border: 1px solid #ddd; 158 | line-height: 40px; 159 | text-align: center; 160 | color: #555; 161 | } -------------------------------------------------------------------------------- /src/main/webapp/static/webfront/typeInfo.css: -------------------------------------------------------------------------------- 1 | *{ 2 | padding: 0; 3 | margin: 0; 4 | } 5 | li{ 6 | list-style: none; 7 | } 8 | .header{ 9 | width: 1200px; 10 | height: 60px; 11 | margin: 0 auto; 12 | line-height: 60px; 13 | background-color: #FFFFFF; 14 | } 15 | .logo{ 16 | width: 200px; 17 | height: 60px; 18 | float: left; 19 | text-align: center; 20 | } 21 | .menu{ 22 | max-width: 800px; 23 | height: 60px; 24 | overflow: hidden; 25 | float: left; 26 | } 27 | .user{ 28 | width: 200px; 29 | height: 60px; 30 | float: right; 31 | text-align: center; 32 | } 33 | .userInfo-link{ 34 | width: 200px; 35 | height: auto; 36 | z-index: 9999; 37 | } 38 | .userInfo-link>li{ 39 | float: left; 40 | height: 60px; 41 | line-height: 60px; 42 | overflow: hidden; 43 | } 44 | .userInfo-link>li:nth-child(1){ 45 | width: 150px; 46 | } 47 | .userInfo-link>li:nth-child(2){ 48 | width: 50px; 49 | } 50 | .userInfo-link li a img{ 51 | width: 40px; 52 | height: 40px; 53 | -webkit-border-radius: 50%; 54 | -moz-border-radius: 50%; 55 | border-radius: 50%; 56 | margin-right: 5px; 57 | } 58 | .menu-link:link, 59 | .menu-link:visited, 60 | .menu-link:hover, 61 | .menu-link:active{ 62 | text-decoration: none; 63 | color: #000; 64 | font-size: 18px; 65 | } 66 | #menu{ 67 | width: 800px; 68 | height: 60px; 69 | } 70 | #menu>li{ 71 | width: 100px; 72 | text-align: center; 73 | font-weight: bolder; 74 | float: left; 75 | } 76 | #user>a{ 77 | line-height: 60px; 78 | } 79 | #user>a>img{ 80 | width: 40px; 81 | height: 40px; 82 | margin-top: 10px; 83 | border-radius: 50%; 84 | margin-right: 10px; 85 | } 86 | .body{ 87 | width: 1200px; 88 | height: auto; 89 | margin: 20px auto; 90 | } 91 | .body a:link,.body a:visited{ 92 | text-decoration: none; 93 | color: #555; 94 | } 95 | .body a:hover{ 96 | text-decoration: underline; 97 | } 98 | .news-info{ 99 | width: 100%; 100 | height: auto; 101 | } 102 | .page{ 103 | width: 1200px; 104 | position: relative; 105 | margin-top: 20px; 106 | text-align: center; 107 | } 108 | .page>div{ 109 | width: auto; 110 | margin: 0 auto; 111 | } 112 | .news-list{ 113 | width: 100%; 114 | height: auto; 115 | padding-top: 20px; 116 | } 117 | .news-list li{ 118 | width:275px; 119 | height: 400px; 120 | box-shadow:0 0 5px #aaaaaa; 121 | margin-left: 20px; 122 | float: left; 123 | margin-bottom: 20px; 124 | } 125 | .news-list>li>a>div:first-child{ 126 | width: 100%; 127 | height: 275px; 128 | } 129 | .news-list>li>a>div:last-child{ 130 | width: 100%; 131 | height: 125px; 132 | } 133 | .news-list>li>a>div img{ 134 | width: 275px; 135 | height: 275px; 136 | } 137 | .news-name{ 138 | height: 30px; 139 | line-height: 30px; 140 | text-align: center; 141 | font-size: 16px; 142 | font-weight: bolder; 143 | overflow: hidden; 144 | text-overflow: ellipsis; 145 | white-space: nowrap; 146 | padding: 0 20px; 147 | } 148 | .news-content{ 149 | height: 70px; 150 | padding: 0 10px; 151 | line-height: 23px; 152 | text-align: center; 153 | display: -webkit-box; 154 | -webkit-box-orient: vertical; 155 | -webkit-line-clamp: 3; 156 | overflow: hidden; 157 | } 158 | .news-pubdate{ 159 | height: 25px; 160 | line-height: 25px; 161 | text-align: center; 162 | } -------------------------------------------------------------------------------- /src/main/webapp/static/webfront/validationEngine.jquery.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* Z-INDEX */ 4 | .formError { z-index: 990; } 5 | .formError .formErrorContent { z-index: 991; } 6 | .formError .formErrorArrow { z-index: 996; } 7 | 8 | .ui-dialog .formError { z-index: 5000; } 9 | .ui-dialog .formError .formErrorContent { z-index: 5001; } 10 | .ui-dialog .formError .formErrorArrow { z-index: 5006; } 11 | 12 | 13 | 14 | 15 | .inputContainer { 16 | position: relative; 17 | float: left; 18 | } 19 | 20 | .formError { 21 | position: absolute; 22 | top: 300px; 23 | left: 300px; 24 | display: block; 25 | cursor: pointer; 26 | text-align: left; 27 | } 28 | 29 | .formError.inline { 30 | position: relative; 31 | top: 0; 32 | left: 0; 33 | display: inline-block; 34 | } 35 | 36 | .ajaxSubmit { 37 | padding: 20px; 38 | background: #55ea55; 39 | border: 1px solid #999; 40 | display: none; 41 | } 42 | 43 | .formError .formErrorContent { 44 | width: 100%; 45 | background: #3CB8AE; 46 | position:relative; 47 | color: #fff; 48 | min-width: 100px; 49 | font-size: 11px; 50 | border: 2px solid #ddd; 51 | box-shadow: 0 0 6px #000; 52 | -moz-box-shadow: 0 0 6px #000; 53 | -webkit-box-shadow: 0 0 6px #000; 54 | -o-box-shadow: 0 0 6px #000; 55 | padding: 4px 10px 4px 10px; 56 | border-radius: 6px; 57 | -moz-border-radius: 6px; 58 | -webkit-border-radius: 6px; 59 | -o-border-radius: 6px; 60 | } 61 | 62 | .formError.inline .formErrorContent { 63 | box-shadow: none; 64 | -moz-box-shadow: none; 65 | -webkit-box-shadow: none; 66 | -o-box-shadow: none; 67 | border: none; 68 | border-radius: 0; 69 | -moz-border-radius: 0; 70 | -webkit-border-radius: 0; 71 | -o-border-radius: 0; 72 | } 73 | 74 | .greenPopup .formErrorContent { 75 | background: #33be40; 76 | } 77 | 78 | .blackPopup .formErrorContent { 79 | background: #393939; 80 | color: #FFF; 81 | } 82 | 83 | .formError .formErrorArrow { 84 | width: 15px; 85 | margin: -2px 0 0 13px; 86 | position:relative; 87 | } 88 | body[dir='rtl'] .formError .formErrorArrow, 89 | body.rtl .formError .formErrorArrow { 90 | margin: -2px 13px 0 0; 91 | } 92 | 93 | .formError .formErrorArrowBottom { 94 | box-shadow: none; 95 | -moz-box-shadow: none; 96 | -webkit-box-shadow: none; 97 | -o-box-shadow: none; 98 | margin: 0px 0 0 12px; 99 | top:2px; 100 | } 101 | 102 | .formError .formErrorArrow div { 103 | border-left: 2px solid #ddd; 104 | border-right: 2px solid #ddd; 105 | box-shadow: 0 2px 3px #444; 106 | -moz-box-shadow: 0 2px 3px #444; 107 | -webkit-box-shadow: 0 2px 3px #444; 108 | -o-box-shadow: 0 2px 3px #444; 109 | font-size: 0px; 110 | height: 1px; 111 | background: #3CB8AE; 112 | margin: 0 auto; 113 | line-height: 0; 114 | font-size: 0; 115 | display: block; 116 | } 117 | 118 | .formError .formErrorArrowBottom div { 119 | box-shadow: none; 120 | -moz-box-shadow: none; 121 | -webkit-box-shadow: none; 122 | -o-box-shadow: none; 123 | } 124 | 125 | .greenPopup .formErrorArrow div { 126 | background: #33be40; 127 | } 128 | 129 | .blackPopup .formErrorArrow div { 130 | background: #393939; 131 | color: #FFF; 132 | } 133 | 134 | .formError .formErrorArrow .line10 { 135 | width: 13px; 136 | border: none; 137 | } 138 | 139 | .formError .formErrorArrow .line9 { 140 | width: 11px; 141 | border: none; 142 | } 143 | 144 | .formError .formErrorArrow .line8 { 145 | width: 11px; 146 | } 147 | 148 | .formError .formErrorArrow .line7 { 149 | width: 9px; 150 | } 151 | 152 | .formError .formErrorArrow .line6 { 153 | width: 7px; 154 | } 155 | 156 | .formError .formErrorArrow .line5 { 157 | width: 5px; 158 | } 159 | 160 | .formError .formErrorArrow .line4 { 161 | width: 3px; 162 | } 163 | 164 | .formError .formErrorArrow .line3 { 165 | width: 1px; 166 | border-left: 2px solid #ddd; 167 | border-right: 2px solid #ddd; 168 | border-bottom: 0 solid #ddd; 169 | } 170 | 171 | .formError .formErrorArrow .line2 { 172 | width: 3px; 173 | border: none; 174 | background: #ddd; 175 | } 176 | 177 | .formError .formErrorArrow .line1 { 178 | width: 1px; 179 | border: none; 180 | background: #ddd; 181 | } 182 | --------------------------------------------------------------------------------