├── .gitignore
├── .idea
├── .name
├── artifacts
│ ├── iweb_java_war.xml
│ └── iweb_java_war_exploded.xml
├── compiler.xml
├── copyright
│ └── profiles_settings.xml
├── inspectionProfiles
│ ├── Project_Default.xml
│ └── profiles_settings.xml
├── libraries
│ ├── Maven__antlr_antlr_2_7_7.xml
│ ├── Maven__aopalliance_aopalliance_1_0.xml
│ ├── Maven__ch_qos_logback_logback_classic_1_1_3.xml
│ ├── Maven__ch_qos_logback_logback_core_1_1_3.xml
│ ├── Maven__com_alibaba_druid_1_0_15.xml
│ ├── Maven__com_alibaba_fastjson_1_2_7.xml
│ ├── Maven__com_github_subchen_jetbrick_commons_2_0_6.xml
│ ├── Maven__com_github_subchen_jetbrick_template_2_0_12.xml
│ ├── Maven__com_github_subchen_jetbrick_template_springmvc_2_0_12.xml
│ ├── Maven__com_github_subchen_jetbrick_template_web_2_0_12.xml
│ ├── Maven__dom4j_dom4j_1_6_1.xml
│ ├── Maven__javax_servlet_javax_servlet_api_3_1_0.xml
│ ├── Maven__javax_servlet_jsp_jsp_api_2_1.xml
│ ├── Maven__javax_servlet_jsp_jstl_jstl_api_1_2.xml
│ ├── Maven__javax_servlet_servlet_api_2_5.xml
│ ├── Maven__mysql_mysql_connector_java_5_1_36.xml
│ ├── Maven__net_sf_ehcache_ehcache_2_10_1.xml
│ ├── Maven__org_abego_treelayout_org_abego_treelayout_core_1_0_1.xml
│ ├── Maven__org_antlr_antlr4_annotations_4_3.xml
│ ├── Maven__org_antlr_antlr4_runtime_4_3.xml
│ ├── Maven__org_apache_geronimo_specs_geronimo_jta_1_1_spec_1_1_1.xml
│ ├── Maven__org_aspectj_aspectjrt_1_8_6.xml
│ ├── Maven__org_aspectj_aspectjweaver_1_8_6.xml
│ ├── Maven__org_hibernate_common_hibernate_commons_annotations_5_0_0_Final.xml
│ ├── Maven__org_hibernate_hibernate_core_5_0_1_Final.xml
│ ├── Maven__org_hibernate_hibernate_entitymanager_5_0_1_Final.xml
│ ├── Maven__org_hibernate_javax_persistence_hibernate_jpa_2_1_api_1_0_0_Final.xml
│ ├── Maven__org_javassist_javassist_3_18_1_GA.xml
│ ├── Maven__org_jboss_jandex_1_2_2_Final.xml
│ ├── Maven__org_jboss_logging_jboss_logging_3_3_0_Final.xml
│ ├── Maven__org_slf4j_jcl_over_slf4j_1_7_12.xml
│ ├── Maven__org_slf4j_slf4j_api_1_7_12.xml
│ ├── Maven__org_springframework_spring_aop_4_2_1_RELEASE.xml
│ ├── Maven__org_springframework_spring_beans_4_2_1_RELEASE.xml
│ ├── Maven__org_springframework_spring_context_4_2_1_RELEASE.xml
│ ├── Maven__org_springframework_spring_context_support_4_2_1_RELEASE.xml
│ ├── Maven__org_springframework_spring_core_4_2_1_RELEASE.xml
│ ├── Maven__org_springframework_spring_expression_4_2_1_RELEASE.xml
│ ├── Maven__org_springframework_spring_jdbc_4_2_1_RELEASE.xml
│ ├── Maven__org_springframework_spring_orm_4_2_1_RELEASE.xml
│ ├── Maven__org_springframework_spring_tx_4_2_1_RELEASE.xml
│ ├── Maven__org_springframework_spring_web_4_2_1_RELEASE.xml
│ ├── Maven__org_springframework_spring_webmvc_4_2_1_RELEASE.xml
│ ├── Maven__taglibs_standard_1_1_2.xml
│ └── Maven__xml_apis_xml_apis_1_0_b2.xml
├── misc.xml
├── modules.xml
├── vcs.xml
└── workspace.xml
├── README.md
├── dbinit.sql
├── iweb-java.iml
├── pom.xml
├── screenshot
├── screenshot-1.png
└── screenshot-2.png
└── src
└── main
├── java
└── io
│ └── github
│ └── igordonxiao
│ ├── bean
│ ├── Constants.java
│ ├── Page.java
│ └── Platform.java
│ ├── controller
│ ├── IndexController.java
│ ├── MainController.java
│ ├── error
│ │ └── ErrorMappingController.java
│ └── sys
│ │ ├── BaseController.java
│ │ └── SysController.java
│ ├── dao
│ └── sys
│ │ ├── IGenericDao.java
│ │ ├── IMenuDao.java
│ │ ├── IUserDao.java
│ │ └── impl
│ │ ├── GenericDao.java
│ │ ├── MenuDao.java
│ │ └── UserDao.java
│ ├── dto
│ └── RequestPagination.java
│ ├── entity
│ └── sys
│ │ ├── Menu.java
│ │ └── User.java
│ ├── helper
│ ├── BisHelper.java
│ └── MenuComparator.java
│ ├── http
│ ├── JSONResult.java
│ └── ResultState.java
│ ├── interceptor
│ ├── SessionIntercepter.java
│ └── WebRootInterceptor.java
│ ├── resolver
│ └── CustomSimpleMappingExceptionResolver.java
│ ├── service
│ └── sys
│ │ ├── IGenericService.java
│ │ ├── IMenuService.java
│ │ ├── IUserService.java
│ │ └── impl
│ │ ├── GenericService.java
│ │ ├── MenuService.java
│ │ └── UserService.java
│ └── util
│ ├── PwdUtil.java
│ └── RequestUtil.java
├── resources
├── ehcache.xml
├── jdbc.properties
├── logback.xml
├── spring-hibernate.xml
├── spring-mvc.xml
└── spring.xml
└── webapp
├── WEB-INF
├── jetbrick-template.properties
├── view
│ ├── error
│ │ ├── 404.jetx
│ │ └── 500.jetx
│ ├── include
│ │ ├── env.jetx
│ │ ├── main-aside-left.jetx
│ │ ├── main-aside-right.jetx
│ │ ├── main-content-foot.jetx
│ │ ├── main-content-head.jetx
│ │ ├── page-foot.jetx
│ │ └── page-head.jetx
│ ├── index.jetx
│ ├── login.jetx
│ ├── main.jetx
│ └── mainIndex.jetx
└── web.xml
└── static
├── lib
├── bootstrap
│ ├── css
│ │ ├── animate.min.css
│ │ ├── bootstrap.min.css
│ │ ├── font-awesome.min.css
│ │ ├── login.min.css
│ │ ├── patterns
│ │ │ └── header-profile.png
│ │ ├── plugins
│ │ │ ├── awesome-bootstrap-checkbox
│ │ │ │ └── awesome-bootstrap-checkbox.css
│ │ │ ├── blueimp
│ │ │ │ └── css
│ │ │ │ │ └── blueimp-gallery.min.css
│ │ │ ├── bootstraptable
│ │ │ │ └── bootstrap-table.min.css
│ │ │ ├── chosen
│ │ │ │ └── chosen.css
│ │ │ ├── clockpicker
│ │ │ │ └── clockpicker.css
│ │ │ ├── codemirror
│ │ │ │ ├── ambiance.css
│ │ │ │ └── codemirror.css
│ │ │ ├── colorpicker
│ │ │ │ └── css
│ │ │ │ │ └── bootstrap-colorpicker.min.css
│ │ │ ├── cropper
│ │ │ │ └── cropper.min.css
│ │ │ ├── dataTables
│ │ │ │ └── dataTables.bootstrap.css
│ │ │ ├── datapicker
│ │ │ │ └── datepicker3.css
│ │ │ ├── dropzone
│ │ │ │ ├── basic.css
│ │ │ │ └── dropzone.css
│ │ │ ├── footable
│ │ │ │ └── footable.core.css
│ │ │ ├── fullcalendar
│ │ │ │ ├── fullcalendar.css
│ │ │ │ └── fullcalendar.print.css
│ │ │ ├── iCheck
│ │ │ │ └── custom.css
│ │ │ ├── ionRangeSlider
│ │ │ │ ├── ion.rangeSlider.css
│ │ │ │ └── ion.rangeSlider.skinFlat.css
│ │ │ ├── jasny
│ │ │ │ └── jasny-bootstrap.min.css
│ │ │ ├── jqgrid
│ │ │ │ └── ui.jqgrid.css@0820
│ │ │ ├── jsTree
│ │ │ │ └── style.min.css
│ │ │ ├── markdown
│ │ │ │ └── bootstrap-markdown.min.css
│ │ │ ├── morris
│ │ │ │ └── morris-0.4.3.min.css
│ │ │ ├── nouslider
│ │ │ │ └── jquery.nouislider.css
│ │ │ ├── simditor
│ │ │ │ └── simditor.css
│ │ │ ├── steps
│ │ │ │ └── jquery.steps.css
│ │ │ ├── summernote
│ │ │ │ ├── summernote-bs3.css
│ │ │ │ └── summernote.css
│ │ │ ├── sweetalert
│ │ │ │ └── sweetalert.css
│ │ │ ├── switchery
│ │ │ │ └── switchery.css
│ │ │ ├── toastr
│ │ │ │ └── toastr.min.css
│ │ │ ├── treeview
│ │ │ │ └── bootstrap-treeview.css
│ │ │ └── webuploader
│ │ │ │ └── webuploader.css
│ │ └── style.min.css
│ ├── fonts
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.woff
│ │ ├── fontawesome-webfont.woff2
│ │ └── glyphicons-halflings-regular.woff2
│ └── js
│ │ ├── bootstrap.min.js
│ │ ├── contabs.min.js
│ │ ├── content.min.js
│ │ ├── hplus.min.js
│ │ ├── jquery-2.1.1.min.js
│ │ ├── jquery-ui-1.10.4.min.js
│ │ ├── jquery-ui.custom.min.js
│ │ ├── plugins
│ │ ├── beautifyhtml
│ │ │ └── beautifyhtml.js
│ │ ├── blueimp
│ │ │ └── jquery.blueimp-gallery.min.js
│ │ ├── bootstraptable
│ │ │ ├── bootstrap-table-zh-CN.min.js
│ │ │ └── bootstrap-table.min.js
│ │ ├── chartJs
│ │ │ └── Chart.min.js
│ │ ├── chosen
│ │ │ └── chosen.jquery.js
│ │ ├── clockpicker
│ │ │ └── clockpicker.js
│ │ ├── codemirror
│ │ │ ├── codemirror.js
│ │ │ └── mode
│ │ │ │ └── javascript
│ │ │ │ └── javascript.js
│ │ ├── colorpicker
│ │ │ └── bootstrap-colorpicker.min.js
│ │ ├── cropper
│ │ │ └── cropper.min.js
│ │ ├── dataTables
│ │ │ ├── dataTables.bootstrap.js
│ │ │ └── jquery.dataTables.js
│ │ ├── datapicker
│ │ │ └── bootstrap-datepicker.js
│ │ ├── diff_match_patch
│ │ │ └── diff_match_patch.js
│ │ ├── dropzone
│ │ │ └── dropzone.js
│ │ ├── easypiechart
│ │ │ └── jquery.easypiechart.js
│ │ ├── echarts
│ │ │ └── echarts-all.js
│ │ ├── fancybox
│ │ │ ├── jquery.fancybox.css
│ │ │ └── jquery.fancybox.js
│ │ ├── flot
│ │ │ ├── curvedLines.js
│ │ │ ├── jquery.flot.js
│ │ │ ├── jquery.flot.pie.js
│ │ │ ├── jquery.flot.resize.js
│ │ │ ├── jquery.flot.spline.js
│ │ │ ├── jquery.flot.symbol.js
│ │ │ └── jquery.flot.tooltip.min.js
│ │ ├── footable
│ │ │ └── footable.all.min.js
│ │ ├── fullcalendar
│ │ │ └── fullcalendar.min.js
│ │ ├── gritter
│ │ │ ├── jquery.gritter.css
│ │ │ └── jquery.gritter.min.js
│ │ ├── handlebars
│ │ │ └── handlebars-v4.0.2.js
│ │ ├── iCheck
│ │ │ └── icheck.min.js
│ │ ├── ionRangeSlider
│ │ │ └── ion.rangeSlider.min.js
│ │ ├── jasny
│ │ │ └── jasny-bootstrap.min.js
│ │ ├── jeditable
│ │ │ └── jquery.jeditable.js
│ │ ├── jqgrid
│ │ │ ├── i18n
│ │ │ │ └── grid.locale-cn.js@0820
│ │ │ └── jquery.jqGrid.min.js@0820
│ │ ├── jquery-ui
│ │ │ └── jquery-ui.min.js
│ │ ├── jsKnob
│ │ │ └── jquery.knob.js
│ │ ├── jsTree
│ │ │ └── jstree.min.js
│ │ ├── jvectormap
│ │ │ ├── jquery-jvectormap-1.2.2.min.js
│ │ │ └── jquery-jvectormap-world-mill-en.js
│ │ ├── layer
│ │ │ ├── extend
│ │ │ │ └── layer.ext.js
│ │ │ ├── laydate
│ │ │ │ └── laydate.js
│ │ │ ├── layer.min.js
│ │ │ ├── layim
│ │ │ │ ├── layim.css
│ │ │ │ └── layim.js
│ │ │ └── skin
│ │ │ │ ├── default
│ │ │ │ ├── icon-ext.png
│ │ │ │ ├── icon.png
│ │ │ │ ├── loading-0.gif
│ │ │ │ ├── loading-1.gif
│ │ │ │ └── loading-2.gif
│ │ │ │ ├── layer.css
│ │ │ │ ├── layer.ext.css
│ │ │ │ └── moon
│ │ │ │ ├── default.png
│ │ │ │ └── style.css
│ │ ├── markdown
│ │ │ ├── bootstrap-markdown.js
│ │ │ ├── bootstrap-markdown.zh.js
│ │ │ ├── markdown.js
│ │ │ └── to-markdown.js
│ │ ├── metisMenu
│ │ │ └── jquery.metisMenu.js
│ │ ├── morris
│ │ │ ├── morris.js
│ │ │ └── raphael-2.1.0.min.js
│ │ ├── nestable
│ │ │ └── jquery.nestable.js
│ │ ├── nouslider
│ │ │ └── jquery.nouislider.min.js
│ │ ├── pace
│ │ │ └── pace.min.js
│ │ ├── peity
│ │ │ └── jquery.peity.min.js
│ │ ├── preetyTextDiff
│ │ │ └── jquery.pretty-text-diff.min.js
│ │ ├── prettyfile
│ │ │ └── bootstrap-prettyfile.js
│ │ ├── rickshaw
│ │ │ ├── rickshaw.min.js
│ │ │ └── vendor
│ │ │ │ └── d3.v3.js
│ │ ├── simditor
│ │ │ ├── hotkeys.js
│ │ │ ├── module.js
│ │ │ ├── simditor.js
│ │ │ └── uploader.js
│ │ ├── slimscroll
│ │ │ └── jquery.slimscroll.min.js
│ │ ├── sparkline
│ │ │ └── jquery.sparkline.min.js
│ │ ├── staps
│ │ │ └── jquery.steps.min.js
│ │ ├── suggest
│ │ │ └── bootstrap-suggest.min.js
│ │ ├── summernote
│ │ │ ├── summernote-zh-CN.js
│ │ │ └── summernote.min.js
│ │ ├── sweetalert
│ │ │ └── sweetalert.min.js
│ │ ├── switchery
│ │ │ └── switchery.js
│ │ ├── toastr
│ │ │ └── toastr.min.js
│ │ ├── treeview
│ │ │ └── bootstrap-treeview.js
│ │ ├── validate
│ │ │ ├── jquery.validate.min.js
│ │ │ └── messages_zh.min.js
│ │ └── webuploader
│ │ │ └── webuploader.min.js
│ │ └── welcome.js
├── css
│ └── normalize.css
└── js
│ ├── base64.min.js
│ ├── jquery-2.1.4.min.js
│ └── jquery.cookie.js
└── src
├── css
├── compoent.css
└── login.css
├── img
├── avatar
│ └── avatar.png
├── icon
│ └── i
│ │ └── icon-statistics.png
└── logo
│ └── iweb.png
└── js
├── common.js
├── componet.js
└── main.js
/.gitignore:
--------------------------------------------------------------------------------
1 | target
2 | .idea
3 |
--------------------------------------------------------------------------------
/.idea/.name:
--------------------------------------------------------------------------------
1 | iweb-java
--------------------------------------------------------------------------------
/.idea/artifacts/iweb_java_war.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | $PROJECT_DIR$/target
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
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 |
32 |
--------------------------------------------------------------------------------
/.idea/copyright/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/Project_Default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__antlr_antlr_2_7_7.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__aopalliance_aopalliance_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_1_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__ch_qos_logback_logback_core_1_1_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_alibaba_druid_1_0_15.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_alibaba_fastjson_1_2_7.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_github_subchen_jetbrick_commons_2_0_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_github_subchen_jetbrick_template_2_0_12.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_github_subchen_jetbrick_template_springmvc_2_0_12.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_github_subchen_jetbrick_template_web_2_0_12.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__javax_servlet_jsp_jsp_api_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__javax_servlet_jsp_jstl_jstl_api_1_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__javax_servlet_servlet_api_2_5.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_36.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__net_sf_ehcache_ehcache_2_10_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_abego_treelayout_org_abego_treelayout_core_1_0_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_antlr_antlr4_annotations_4_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_antlr_antlr4_runtime_4_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_geronimo_specs_geronimo_jta_1_1_spec_1_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_aspectj_aspectjrt_1_8_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_8_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_0_0_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_hibernate_hibernate_core_5_0_1_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_hibernate_hibernate_entitymanager_5_0_1_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_hibernate_javax_persistence_hibernate_jpa_2_1_api_1_0_0_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_javassist_javassist_3_18_1_GA.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_jboss_jandex_1_2_2_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_0_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_12.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_12.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_aop_4_2_1_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_beans_4_2_1_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_context_4_2_1_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_context_support_4_2_1_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_core_4_2_1_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_expression_4_2_1_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_jdbc_4_2_1_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_orm_4_2_1_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_tx_4_2_1_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_web_4_2_1_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_springframework_spring_webmvc_4_2_1_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/libraries/Maven__xml_apis_xml_apis_1_0_b2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 | $USER_HOME$/.subversion
31 |
32 |
33 |
34 |
35 |
36 | 1.8
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## A backend web management system template with Java 8, Spring 4, Hibernate 5 and more...
2 | ## It's just a seed yet, you have to raise it follow your own business demands.
3 |
4 | ### MAIN FRAMEWORKS
5 | 1. Spring4+SpringMVC+Hibernate5
6 | 2. Logback
7 | 3. Druid
8 | 4. Jetbrick-template
9 | 5. EhCache
10 |
11 | ### FRONT END
12 | 1. jQuery & Bootstrap v3.3.4
13 | 2. Fontawesome icons
14 | 3. Many resource code are from site [h+ v3.2.0](http://www.zi-han.net/theme/hplus/), if you like that template could contact it's author to purchase one and you can get more services.
15 |
16 | ### REQUIRED
17 | 1. JDK 1.8 or higher
18 | 2. MySQL server(InnoDB)
19 |
20 | ### CONTAINS BY DEFAULT
21 | 1. System User Login
22 | 2. System Menu Model
23 | 3. Generic DAO & Generic Service
24 | 4. Some Uesful Tools
25 |
26 | ### HOW TO
27 | 1. Create a database named `iweb-java`;
28 | 2. Import sql file `dbinit.sql` to the database;
29 | 3. Modify database username and password in file `jdbc.properties` whitch under directory `src/main/resources`;
30 | 4. Compile(with Maven) & deploy this web project;
31 | 5. Access `localhost:[port]` and login with user(admin:admin)
32 |
33 | ### SECOND DEVELOPMENT
34 | 1. Add all your own business backend code into `bis` packages(DAOs,Services,Controllers)
35 | 2. Add others what you want
36 |
37 |
38 | ### SCREENSHOT
39 |
40 |
41 |
42 |
43 |
44 | ### LICENSE
45 | The MIT License (MIT)
46 |
47 |
--------------------------------------------------------------------------------
/dbinit.sql:
--------------------------------------------------------------------------------
1 | SET NAMES utf8;
2 | SET FOREIGN_KEY_CHECKS = 0;
3 |
4 | -- ----------------------------
5 | -- Table structure for `sys_menu`
6 | -- ----------------------------
7 | DROP TABLE IF EXISTS `sys_menu`;
8 | CREATE TABLE `sys_menu` (
9 | `id` bigint(11) NOT NULL,
10 | `name` varchar(100) NOT NULL COMMENT '菜单名称',
11 | `icon_class` varchar(100) DEFAULT NULL COMMENT '菜单图标,只支持font awesome',
12 | `href` varchar(255) DEFAULT NULL COMMENT '菜单链接地址',
13 | `level` int(20) DEFAULT NULL COMMENT '等级',
14 | `parent_id` bigint(11) DEFAULT NULL COMMENT '父级ID',
15 | `sequence` int(11) DEFAULT NULL COMMENT '排序字段',
16 | PRIMARY KEY (`id`),
17 | KEY `FK2jrf4gb0gjqi8882gxytpxnhe` (`parent_id`),
18 | CONSTRAINT `FK2jrf4gb0gjqi8882gxytpxnhe` FOREIGN KEY (`parent_id`) REFERENCES `sys_menu` (`id`)
19 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
20 |
21 | -- ----------------------------
22 | -- Records of `sys_menu`
23 | -- ----------------------------
24 | BEGIN;
25 | INSERT INTO `sys_menu` VALUES ('1', '经营分析', 'fa fa-bar-chart-o', null, '1', null, '1'), ('2', '市场分析', 'fa fa-table', null, '2', '1', '1'), ('3', '销售状况', 'fa fa-area-chart', null, '1', null, '2'), ('4', '竟品分析', 'fa fa-cubes', null, '2', '3', '1'), ('5', '区域市场', 'fa fa-building-o', null, '2', '3', '2'), ('6', '广告拓展', 'fa fa-suitcase', null, '2', '3', '3');
26 | COMMIT;
27 |
28 | -- ----------------------------
29 | -- Table structure for `sys_user`
30 | -- ----------------------------
31 | DROP TABLE IF EXISTS `sys_user`;
32 | CREATE TABLE `sys_user` (
33 | `id` int(11) NOT NULL AUTO_INCREMENT,
34 | `user_name` varchar(50) NOT NULL COMMENT '用户名',
35 | `password` varchar(255) NOT NULL COMMENT '密码',
36 | `nick_name` varchar(255) DEFAULT NULL COMMENT '昵称',
37 | PRIMARY KEY (`id`)
38 | ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
39 |
40 | -- ----------------------------
41 | -- Records of `sys_user`
42 | -- ----------------------------
43 | BEGIN;
44 | INSERT INTO `sys_user` VALUES ('1', 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Gordon');
45 | COMMIT;
46 |
47 | SET FOREIGN_KEY_CHECKS = 1;
48 |
--------------------------------------------------------------------------------
/screenshot/screenshot-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiuxuanzhi/iweb-java/18e7f3e9e99f7d7b244627fc79b311f4a7b66851/screenshot/screenshot-1.png
--------------------------------------------------------------------------------
/screenshot/screenshot-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiuxuanzhi/iweb-java/18e7f3e9e99f7d7b244627fc79b311f4a7b66851/screenshot/screenshot-2.png
--------------------------------------------------------------------------------
/src/main/java/io/github/igordonxiao/bean/Constants.java:
--------------------------------------------------------------------------------
1 | package io.github.igordonxiao.bean;
2 |
3 | import org.slf4j.Logger;
4 | import org.slf4j.LoggerFactory;
5 |
6 | public interface Constants {
7 | //全局日志
8 | public static final Logger LOG = LoggerFactory.getLogger(Constants.class);
9 |
10 | public static final String USERID_IN_SESSION = "userInSession";
11 |
12 | /**
13 | * Session失效时间,单位秒
14 | */
15 | public static final int MAX_SESSION_INACTIVE_INTERVAL = 3600;
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/io/github/igordonxiao/bean/Page.java:
--------------------------------------------------------------------------------
1 | package io.github.igordonxiao.bean;
2 |
3 | import java.util.List;
4 |
5 | import org.hibernate.criterion.MatchMode;
6 |
7 | import com.alibaba.fastjson.annotation.JSONField;
8 |
9 | public class Page {
10 |
11 | public enum OrderType {
12 | asc, desc
13 | }
14 |
15 | private static final Integer MAX_PAGE_SIZE = 500;//分页允许最大数
16 |
17 | private List list;//分页数据
18 |
19 | private Integer pageSize = 10;//分页大小
20 |
21 | private Integer nowPage = 1;//分页页码
22 |
23 | @JSONField(serialize = false)
24 | private String orderBy;//排序字段
25 |
26 | @JSONField(serialize = false)
27 | private OrderType orderType = OrderType.asc;//排序方式
28 |
29 | private Integer totalCount = 0;//总条数
30 |
31 | private Integer maxPage = 0;//总页数
32 |
33 | @JSONField(serialize = false)
34 | private String property;//关键字检索字段名称
35 |
36 | @JSONField(serialize = false)
37 | private String keyWords;//关键字检索关键字
38 |
39 | @JSONField(serialize = false)
40 | private MatchMode matchMode = MatchMode.ANYWHERE;//关键字检索的匹配模式
41 |
42 | public List getList() {
43 | return list;
44 | }
45 |
46 | public void setList(List list) {
47 | this.list = list;
48 | }
49 |
50 | public Integer getPageSize() {
51 | return pageSize;
52 | }
53 |
54 | public void setPageSize(Integer pageSize) {
55 | this.pageSize = pageSize < 1 ? 1 : pageSize > MAX_PAGE_SIZE ? MAX_PAGE_SIZE : pageSize;
56 | }
57 |
58 | public Integer getNowPage() {
59 | return nowPage;
60 | }
61 |
62 | public void setNowPage(Integer nowPage) {
63 | this.nowPage = nowPage;
64 | }
65 |
66 | public String getOrderBy() {
67 | return orderBy;
68 | }
69 |
70 | public void setOrderBy(String orderBy) {
71 | this.orderBy = orderBy;
72 | }
73 |
74 | public Integer getTotalCount() {
75 | return totalCount;
76 | }
77 |
78 | public void setTotalCount(Integer totalCount) {
79 | this.totalCount = totalCount;
80 | }
81 |
82 | public boolean hasNext() {
83 | return totalCount > pageSize * nowPage ? true : false;
84 | }
85 |
86 | public Integer getMaxPage() {
87 | this.maxPage = this.totalCount / this.pageSize;
88 | return this.totalCount % this.pageSize > 0 ? ++this.maxPage : this.maxPage;
89 | }
90 |
91 | public void setMaxPage(Integer maxPage) {
92 | this.maxPage = maxPage;
93 | }
94 |
95 | public OrderType getOrderType() {
96 | return orderType;
97 | }
98 |
99 | public void setOrderType(OrderType orderType) {
100 | this.orderType = orderType;
101 | }
102 |
103 | public String getProperty() {
104 | return property;
105 | }
106 |
107 | public void setProperty(String property) {
108 | this.property = property;
109 | }
110 |
111 | public String getKeyWords() {
112 | return keyWords;
113 | }
114 |
115 | public void setKeyWords(String keyWords) {
116 | this.keyWords = keyWords;
117 | }
118 |
119 | public MatchMode getMatchMode() {
120 | return matchMode;
121 | }
122 |
123 | public void setMatchMode(MatchMode matchMode) {
124 | this.matchMode = matchMode;
125 | }
126 |
127 | }
128 |
--------------------------------------------------------------------------------
/src/main/java/io/github/igordonxiao/bean/Platform.java:
--------------------------------------------------------------------------------
1 | package io.github.igordonxiao.bean;
2 |
3 | /**
4 | * Created by gordon on 15/10/21.
5 | */
6 | public enum Platform {
7 | //默认0,安卓-1,IOS-2,webapp-3
8 | ALL(0), Android(1), iOS(2), WebApp(3);
9 |
10 | private int patformCode;
11 |
12 | private Platform(int patformCode) {
13 |
14 | this.patformCode = patformCode;
15 |
16 | }
17 |
18 | @Override
19 | public String toString() {
20 |
21 | return String.valueOf(this.patformCode);
22 |
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/io/github/igordonxiao/controller/IndexController.java:
--------------------------------------------------------------------------------
1 | package io.github.igordonxiao.controller;
2 |
3 | import io.github.igordonxiao.bean.Constants;
4 | import io.github.igordonxiao.controller.sys.BaseController;
5 | import io.github.igordonxiao.entity.sys.User;
6 | import io.github.igordonxiao.service.sys.IUserService;
7 | import org.springframework.beans.factory.annotation.Autowired;
8 | import org.springframework.stereotype.Controller;
9 | import org.springframework.ui.ModelMap;
10 | import org.springframework.util.StringUtils;
11 | import org.springframework.web.bind.annotation.RequestMapping;
12 | import org.springframework.web.bind.annotation.RequestMethod;
13 | import org.springframework.web.servlet.mvc.support.RedirectAttributes;
14 |
15 | import javax.servlet.http.HttpServletRequest;
16 | import javax.servlet.http.HttpServletResponse;
17 | import javax.servlet.http.HttpSession;
18 |
19 | /**
20 | * Created by gordon on 15/9/16.
21 | */
22 | @Controller
23 | @RequestMapping("/")
24 | public class IndexController extends BaseController {
25 | @Autowired
26 | private IUserService userService;
27 |
28 | @RequestMapping(method = RequestMethod.GET)
29 | public String index(ModelMap modelMap, HttpServletRequest request, HttpServletResponse response) {
30 | return "login";
31 | }
32 |
33 | @RequestMapping(value = "login", method = RequestMethod.POST)
34 | public String login(User user, ModelMap modelMap, RedirectAttributes attr, HttpSession session, HttpServletRequest request, HttpServletResponse response){
35 | if(user == null || StringUtils.isEmpty(user.getUserName()) || StringUtils.isEmpty(user.getPassword())){
36 | modelMap.put("error", "用户名或密码不能为空");
37 | return "login";
38 | }
39 |
40 | User userDB = this.userService.checkLogin(user);
41 | if(userDB == null || userDB.getId() == null){
42 | modelMap.put("error", "用户名或密码错误");
43 | return "login";
44 | }
45 | userDB.setPassword(null);
46 | // store user into session
47 | session.setAttribute(Constants.USERID_IN_SESSION, userDB);
48 | session.setMaxInactiveInterval(Constants.MAX_SESSION_INACTIVE_INTERVAL);
49 | //attr.addFlashAttribute("user", userDB);
50 | return "redirect:/main";
51 | }
52 |
53 | @RequestMapping(value = "logout", method = RequestMethod.GET)
54 | public String logout(ModelMap modelMap, RedirectAttributes attr, HttpSession session, HttpServletRequest request, HttpServletResponse response){
55 | session.removeAttribute(Constants.USERID_IN_SESSION);
56 | return "redirect:/";
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/src/main/java/io/github/igordonxiao/controller/MainController.java:
--------------------------------------------------------------------------------
1 | package io.github.igordonxiao.controller;
2 |
3 | import io.github.igordonxiao.bean.Constants;
4 | import io.github.igordonxiao.controller.sys.BaseController;
5 | import io.github.igordonxiao.entity.sys.User;
6 | import org.springframework.stereotype.Controller;
7 | import org.springframework.ui.ModelMap;
8 | import org.springframework.web.bind.annotation.RequestMapping;
9 | import org.springframework.web.bind.annotation.RequestMethod;
10 |
11 | import javax.servlet.http.HttpServletRequest;
12 | import javax.servlet.http.HttpServletResponse;
13 | import javax.servlet.http.HttpSession;
14 |
15 | /**
16 | * Created by gordon on 15/9/16.
17 | */
18 | @Controller
19 | @RequestMapping("/main")
20 | public class MainController extends BaseController {
21 |
22 | @RequestMapping(method = RequestMethod.GET)
23 | public String main(ModelMap modelMap, HttpSession session, HttpServletRequest request, HttpServletResponse response) {
24 | Object userInSession = session.getAttribute(Constants.USERID_IN_SESSION);
25 | if(userInSession != null){
26 | modelMap.put("user", (User)userInSession);
27 | return "main";
28 | } else {
29 | modelMap.put("error", "请先登录");
30 | return "login";
31 | }
32 | }
33 |
34 | @RequestMapping(value ="/index", method = RequestMethod.GET)
35 | public String mainIndex(ModelMap modelMap) {
36 | return "mainIndex";
37 | }
38 |
39 | }
40 |
--------------------------------------------------------------------------------
/src/main/java/io/github/igordonxiao/controller/error/ErrorMappingController.java:
--------------------------------------------------------------------------------
1 | package io.github.igordonxiao.controller.error;
2 |
3 | import io.github.igordonxiao.controller.sys.BaseController;
4 | import org.springframework.stereotype.Controller;
5 | import org.springframework.ui.ModelMap;
6 | import org.springframework.web.bind.annotation.RequestMapping;
7 | import org.springframework.web.bind.annotation.RequestMethod;
8 |
9 | import javax.servlet.http.HttpServletRequest;
10 | import javax.servlet.http.HttpServletResponse;
11 |
12 | /**
13 | * Created by gordon on 15/10/26.
14 | */
15 | @Controller
16 | @RequestMapping("/error")
17 | public class ErrorMappingController extends BaseController{
18 |
19 | @RequestMapping(value = "/404", method = RequestMethod.GET)
20 | public String errorFor404(ModelMap modelMap, HttpServletRequest request, HttpServletResponse response) {
21 | return "error/404";
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/io/github/igordonxiao/controller/sys/BaseController.java:
--------------------------------------------------------------------------------
1 | package io.github.igordonxiao.controller.sys;
2 |
3 | import org.springframework.web.servlet.ModelAndView;
4 | import org.springframework.web.servlet.mvc.AbstractController;
5 |
6 | import javax.servlet.http.HttpServletRequest;
7 | import javax.servlet.http.HttpServletResponse;
8 |
9 | /**
10 | * Created by gordon on 15/10/23.
11 | */
12 | public abstract class BaseController extends AbstractController {
13 | @Override
14 | protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
15 | return null;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/io/github/igordonxiao/controller/sys/SysController.java:
--------------------------------------------------------------------------------
1 | package io.github.igordonxiao.controller.sys;
2 |
3 | import io.github.igordonxiao.entity.sys.User;
4 | import io.github.igordonxiao.http.JSONResult;
5 | import io.github.igordonxiao.http.ResultState;
6 | import io.github.igordonxiao.service.sys.IMenuService;
7 | import io.github.igordonxiao.service.sys.IUserService;
8 | import org.springframework.stereotype.Controller;
9 | import org.springframework.web.bind.annotation.RequestMapping;
10 | import org.springframework.web.bind.annotation.RequestMethod;
11 | import org.springframework.web.bind.annotation.ResponseBody;
12 |
13 | import javax.annotation.Resource;
14 |
15 | /**
16 | * Created by gordon on 15/10/20.
17 | */
18 | @Controller
19 | @RequestMapping("/sys")
20 | public class SysController extends BaseController{
21 | @Resource
22 | IUserService userService;
23 | @Resource
24 | IMenuService menuService;
25 |
26 |
27 | @RequestMapping(value = "/user", method = RequestMethod.GET)
28 | @ResponseBody
29 | JSONResult getUser(){
30 | User user = this.userService.get(1L);
31 | return new JSONResult(ResultState.success, user);
32 | }
33 |
34 | @RequestMapping(value = "/menu", method = RequestMethod.GET)
35 | @ResponseBody
36 | JSONResult getMenu(){
37 | return new JSONResult(ResultState.success, this.menuService.getMenu());
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/src/main/java/io/github/igordonxiao/dao/sys/IGenericDao.java:
--------------------------------------------------------------------------------
1 | package io.github.igordonxiao.dao.sys;
2 |
3 | import io.github.igordonxiao.bean.Page;
4 | import org.hibernate.Criteria;
5 | import org.hibernate.Session;
6 | import org.hibernate.criterion.DetachedCriteria;
7 |
8 | import java.io.Serializable;
9 | import java.util.List;
10 |
11 | public interface IGenericDao {
12 |
13 | void setEntityClass(Class entityClass);
14 |
15 | /**
16 | * 获取hibernate session对象
17 | *
18 | * @return
19 | */
20 | Session getSession();
21 |
22 | /**
23 | * 创建一个criteria
24 | *
25 | * @return
26 | */
27 | Criteria getCriteria();
28 |
29 | /**
30 | * 通过id加载实体
31 | *
32 | * @param id
33 | * @return 实体对象
34 | */
35 | T load(PK id);
36 |
37 | /**
38 | * 通过id加载实体
39 | *
40 | * @param id
41 | * @return 实体对象
42 | */
43 | T get(PK id);
44 |
45 | /**
46 | * 根据ID数组获取实体对象集合.
47 | *
48 | * @param ids
49 | * @return 实体对象集合
50 | */
51 | List get(PK[] ids);
52 |
53 | /**
54 | * 根据属性名和属性值获取实体对象.
55 | *
56 | * @param propertyName
57 | * @param value
58 | * @return 实体对象
59 | */
60 | T get(String propertyName, Object value);
61 |
62 | /**
63 | * 根据DetachedCriteria获取对象
64 | *
65 | * @param criteria
66 | * @return
67 | */
68 | T get(DetachedCriteria criteria);
69 |
70 | /**
71 | * 根据属性名和属性值获取实体对象集合.
72 | *
73 | * @param propertyName
74 | * @param value
75 | * @return 实体对象集合
76 | */
77 | List getList(String propertyName, Object value);
78 |
79 | /**
80 | * 获取所有实体对象总数.
81 | *
82 | * @return 实体对象总数
83 | */
84 | Integer getCount();
85 |
86 | /**
87 | * 根据DetachedCriteria获取实体数量
88 | *
89 | * @param criteria
90 | * @return
91 | */
92 | Integer getCount(DetachedCriteria criteria);
93 |
94 | /**
95 | * 保存实体对象.
96 | *
97 | * @param entity
98 | * @return ID
99 | */
100 | PK save(T entity);
101 |
102 | /**
103 | * 保存或更新一个对象
104 | *
105 | * @param entity
106 | */
107 | void saveOrUpdate(T entity);
108 |
109 | /**
110 | * 更新实体对象.
111 | *
112 | * @param entity
113 | */
114 | void update(T entity);
115 |
116 | /**
117 | * 合并一个对象
118 | *
119 | * @param entity
120 | */
121 | void merge(T entity);
122 |
123 | /**
124 | * 删除实体对象.
125 | *
126 | * @param entity
127 | * @return
128 | */
129 | void delete(T entity);
130 |
131 | /**
132 | * 根据ID删除实体对象.
133 | *
134 | * @param id
135 | */
136 | void delete(PK id);
137 |
138 | /**
139 | * 根据ID数组删除实体对象.
140 | *
141 | * @param ids
142 | */
143 | void delete(PK[] ids);
144 |
145 | /**
146 | * 根据实体集合删除实体对象
147 | *
148 | * @param list
149 | */
150 | void delete(List list);
151 |
152 | /**
153 | * 获取全部列表
154 | *
155 | * @return
156 | */
157 | List list();
158 |
159 | /**
160 | * 根据DetachedCriteria 获取列表
161 | *
162 | * @param criteria
163 | * @return
164 | */
165 | List list(DetachedCriteria criteria);
166 |
167 | /**
168 | * 执行criteria查询获得一个结果
169 | *
170 | * @param criteria
171 | * @return
172 | */
173 | Object findObject(DetachedCriteria criteria);
174 |
175 | /**
176 | * DetachedCriteria分页查询
177 | *
178 | * @param criteria
179 | * @param pageSize
180 | * @param pageNumber
181 | * @return
182 | */
183 | List page(DetachedCriteria criteria, Integer pageSize, Integer pageNumber);
184 |
185 | /**
186 | * 根据DetachedCriteria和Page对象获取分页page对象
187 | *
188 | * @param criteria
189 | * @param page
190 | * @return
191 | */
192 | Page getPage(DetachedCriteria criteria, Page page);
193 | }
--------------------------------------------------------------------------------
/src/main/java/io/github/igordonxiao/dao/sys/IMenuDao.java:
--------------------------------------------------------------------------------
1 | package io.github.igordonxiao.dao.sys;
2 |
3 | import io.github.igordonxiao.entity.sys.Menu;
4 |
5 | /**
6 | * Created by gordon on 15/10/20.
7 | */
8 | public interface IMenuDao extends IGenericDao