实例介绍
2014最近做好的学期项目hr 带数据 JSP页面 完全能运行 带有完整的libs jar包 J2EE SSH Ajax easyUI 带有上传功能 自动菜单生成 登录验证 员工管理 薪资管理 培训管理 招聘管理 等等
【实例截图】
【核心代码】
hr
├── db_hr.sql
└── hr
├── file.log
├── src
│ ├── beans.xml
│ ├── com
│ │ └── xunda
│ │ └── hr
│ │ ├── actions
│ │ │ ├── DeptAction.java
│ │ │ ├── EmployeeAction.java
│ │ │ ├── JobAction.java
│ │ │ ├── MainAction.java
│ │ │ ├── PostAction.java
│ │ │ ├── PowerAction.java
│ │ │ ├── SalaryAction.java
│ │ │ ├── TestAction.java
│ │ │ ├── TestAction-test-validation.xml
│ │ │ └── TrainAction.java
│ │ ├── dao
│ │ │ ├── IActionsDAO.java
│ │ │ ├── IDeptDAO.java
│ │ │ ├── IEmployeeDAO.java
│ │ │ ├── IJobDAO.java
│ │ │ ├── impl
│ │ │ │ ├── ActionsDAO.java
│ │ │ │ ├── BaseHibernateDAO.java
│ │ │ │ ├── DeptDAO.java
│ │ │ │ ├── EmployeeDAO.java
│ │ │ │ ├── JobDAO.java
│ │ │ │ ├── PostDAO.java
│ │ │ │ ├── PowerDAO.java
│ │ │ │ ├── SalaryDAO.java
│ │ │ │ └── TrainDAO.java
│ │ │ ├── IPostDAO.java
│ │ │ ├── IPowerDAO.java
│ │ │ ├── ISalaryDAO.java
│ │ │ └── ITrainDAO.java
│ │ ├── interceptors
│ │ │ └── adminInterceptor.java
│ │ ├── model
│ │ │ ├── AbstractActionsId.java
│ │ │ ├── AbstractActions.java
│ │ │ ├── AbstractDept.java
│ │ │ ├── AbstractEmployee.java
│ │ │ ├── AbstractJob.java
│ │ │ ├── AbstractPost.java
│ │ │ ├── AbstractPower.java
│ │ │ ├── AbstractSalary.java
│ │ │ ├── AbstractTrain.java
│ │ │ ├── Actions.hbm.xml
│ │ │ ├── ActionsId.java
│ │ │ ├── Actions.java
│ │ │ ├── Dept.hbm.xml
│ │ │ ├── Dept.java
│ │ │ ├── Employee.hbm.xml
│ │ │ ├── Employee.java
│ │ │ ├── Job.hbm.xml
│ │ │ ├── Job.java
│ │ │ ├── MenuInfo.java
│ │ │ ├── Post.hbm.xml
│ │ │ ├── Post.java
│ │ │ ├── Power.hbm.xml
│ │ │ ├── Power.java
│ │ │ ├── Salary.hbm.xml
│ │ │ ├── Salary.java
│ │ │ ├── Train.hbm.xml
│ │ │ └── Train.java
│ │ ├── page
│ │ │ ├── MyBeanUtils.java
│ │ │ ├── Paginable.java
│ │ │ ├── Pagination.java
│ │ │ └── SimplePage.java
│ │ ├── services
│ │ │ ├── IDeptService.java
│ │ │ ├── IEmployeeService.java
│ │ │ ├── IJobServices.java
│ │ │ ├── IMainService.java
│ │ │ ├── IMenuInfoService.java
│ │ │ ├── impl
│ │ │ │ ├── DeptService.java
│ │ │ │ ├── EmployeeService.java
│ │ │ │ ├── JobServices.java
│ │ │ │ ├── MainService.java
│ │ │ │ ├── MenuInfoService.java
│ │ │ │ ├── PostService.java
│ │ │ │ ├── PowerService.java
│ │ │ │ ├── SalaryServices.java
│ │ │ │ └── TrainService.java
│ │ │ ├── IPostService.java
│ │ │ ├── IPowerService.java
│ │ │ ├── ISalaryServices.java
│ │ │ └── ITrainService.java
│ │ ├── test
│ │ │ └── SpringTest.java
│ │ └── utils
│ │ ├── DateUtil.java
│ │ ├── JsonAlert.java
│ │ └── MD5.java
│ ├── hibernate.cfg.xml
│ ├── log4j.properties
│ ├── struts.properties
│ └── struts.xml
└── WebRoot
├── css
│ ├── css.css
│ ├── demo.css
│ └── style.css
├── images
│ ├── 001.ico
│ ├── 002.ico
│ ├── 003.ico
│ ├── 004.ico
│ ├── 005.ico
│ ├── 006.ico
│ ├── 007.ico
│ ├── bg1.jpg
│ ├── bg2.jpg
│ ├── se.ico
│ └── welcome.jpg
├── index.jsp
├── js
│ ├── area.js
│ ├── jquery.easyui.min.js
│ ├── jquery.min.js
│ ├── jquery.validatebox.js
│ └── validatebox.js
├── locale
│ ├── easyui-lang-af.js
│ ├── easyui-lang-ar.js
│ ├── easyui-lang-bg.js
│ ├── easyui-lang-ca.js
│ ├── easyui-lang-cs.js
│ ├── easyui-lang-cz.js
│ ├── easyui-lang-da.js
│ ├── easyui-lang-de.js
│ ├── easyui-lang-el.js
│ ├── easyui-lang-en.js
│ ├── easyui-lang-es.js
│ ├── easyui-lang-fr.js
│ ├── easyui-lang-it.js
│ ├── easyui-lang-jp.js
│ ├── easyui-lang-nl.js
│ ├── easyui-lang-pl.js
│ ├── easyui-lang-pt_BR.js
│ ├── easyui-lang-ru.js
│ ├── easyui-lang-sv_SE.js
│ ├── easyui-lang-tr.js
│ ├── easyui-lang-zh_CN.js
│ └── easyui-lang-zh_TW.js
├── META-INF
│ └── MANIFEST.MF
├── themes
│ ├── black
│ │ ├── accordion.css
│ │ ├── calendar.css
│ │ ├── combobox.css
│ │ ├── combo.css
│ │ ├── datagrid.css
│ │ ├── datebox.css
│ │ ├── dialog.css
│ │ ├── easyui.css
│ │ ├── images
│ │ │ ├── accordion_arrows.png
│ │ │ ├── blank.gif
│ │ │ ├── calendar_arrows.png
│ │ │ ├── combo_arrow.png
│ │ │ ├── datagrid_icons.png
│ │ │ ├── datebox_arrow.png
│ │ │ ├── layout_arrows.png
│ │ │ ├── linkbutton_bg.png
│ │ │ ├── loading.gif
│ │ │ ├── menu_arrows.png
│ │ │ ├── messager_icons.png
│ │ │ ├── pagination_icons.png
│ │ │ ├── panel_tools.png
│ │ │ ├── searchbox_button.png
│ │ │ ├── slider_handle.png
│ │ │ ├── spinner_arrows.png
│ │ │ ├── tabs_icons.png
│ │ │ ├── Thumbs.db
│ │ │ ├── tree_icons.png
│ │ │ └── validatebox_warning.png
│ │ ├── layout.css
│ │ ├── linkbutton.css
│ │ ├── menubutton.css
│ │ ├── menu.css
│ │ ├── messager.css
│ │ ├── pagination.css
│ │ ├── panel.css
│ │ ├── progressbar.css
│ │ ├── propertygrid.css
│ │ ├── searchbox.css
│ │ ├── slider.css
│ │ ├── spinner.css
│ │ ├── splitbutton.css
│ │ ├── tabs.css
│ │ ├── tooltip.css
│ │ ├── tree.css
│ │ ├── validatebox.css
│ │ └── window.css
│ ├── bootstrap
│ │ ├── accordion.css
│ │ ├── calendar.css
│ │ ├── combobox.css
│ │ ├── combo.css
│ │ ├── datagrid.css
│ │ ├── datebox.css
│ │ ├── dialog.css
│ │ ├── easyui.css
│ │ ├── images
│ │ │ ├── accordion_arrows.png
│ │ │ ├── blank.gif
│ │ │ ├── calendar_arrows.png
│ │ │ ├── combo_arrow.png
│ │ │ ├── datagrid_icons.png
│ │ │ ├── datebox_arrow.png
│ │ │ ├── layout_arrows.png
│ │ │ ├── linkbutton_bg.png
│ │ │ ├── loading.gif
│ │ │ ├── menu_arrows.png
│ │ │ ├── messager_icons.png
│ │ │ ├── pagination_icons.png
│ │ │ ├── panel_tools.png
│ │ │ ├── searchbox_button.png
│ │ │ ├── slider_handle.png
│ │ │ ├── spinner_arrows.png
│ │ │ ├── tabs_icons.png
│ │ │ ├── Thumbs.db
│ │ │ ├── tree_icons.png
│ │ │ └── validatebox_warning.png
│ │ ├── layout.css
│ │ ├── linkbutton.css
│ │ ├── menubutton.css
│ │ ├── menu.css
│ │ ├── messager.css
│ │ ├── pagination.css
│ │ ├── panel.css
│ │ ├── progressbar.css
│ │ ├── propertygrid.css
│ │ ├── searchbox.css
│ │ ├── slider.css
│ │ ├── spinner.css
│ │ ├── splitbutton.css
│ │ ├── tabs.css
│ │ ├── tooltip.css
│ │ ├── tree.css
│ │ ├── validatebox.css
│ │ └── window.css
│ ├── default
│ │ ├── accordion.css
│ │ ├── calendar.css
│ │ ├── combobox.css
│ │ ├── combo.css
│ │ ├── datagrid.css
│ │ ├── datebox.css
│ │ ├── dialog.css
│ │ ├── easyui.css
│ │ ├── images
│ │ │ ├── accordion_arrows.png
│ │ │ ├── blank.gif
│ │ │ ├── calendar_arrows.png
│ │ │ ├── combo_arrow.png
│ │ │ ├── datagrid_icons.png
│ │ │ ├── datebox_arrow.png
│ │ │ ├── layout_arrows.png
│ │ │ ├── linkbutton_bg.png
│ │ │ ├── loading.gif
│ │ │ ├── menu_arrows.png
│ │ │ ├── messager_icons.png
│ │ │ ├── pagination_icons.png
│ │ │ ├── panel_tools.png
│ │ │ ├── searchbox_button.png
│ │ │ ├── slider_handle.png
│ │ │ ├── spinner_arrows.png
│ │ │ ├── tabs_icons.png
│ │ │ ├── Thumbs.db
│ │ │ ├── tree_icons.png
│ │ │ └── validatebox_warning.png
│ │ ├── layout.css
│ │ ├── linkbutton.css
│ │ ├── menubutton.css
│ │ ├── menu.css
│ │ ├── messager.css
│ │ ├── pagination.css
│ │ ├── panel.css
│ │ ├── progressbar.css
│ │ ├── propertygrid.css
│ │ ├── searchbox.css
│ │ ├── slider.css
│ │ ├── spinner.css
│ │ ├── splitbutton.css
│ │ ├── tabs.css
│ │ ├── tooltip.css
│ │ ├── tree.css
│ │ ├── validatebox.css
│ │ └── window.css
│ ├── gray
│ │ ├── accordion.css
│ │ ├── calendar.css
│ │ ├── combobox.css
│ │ ├── combo.css
│ │ ├── datagrid.css
│ │ ├── datebox.css
│ │ ├── dialog.css
│ │ ├── easyui.css
│ │ ├── images
│ │ │ ├── accordion_arrows.png
│ │ │ ├── blank.gif
│ │ │ ├── calendar_arrows.png
│ │ │ ├── combo_arrow.png
│ │ │ ├── datagrid_icons.png
│ │ │ ├── datebox_arrow.png
│ │ │ ├── layout_arrows.png
│ │ │ ├── linkbutton_bg.png
│ │ │ ├── loading.gif
│ │ │ ├── menu_arrows.png
│ │ │ ├── messager_icons.png
│ │ │ ├── pagination_icons.png
│ │ │ ├── panel_tools.png
│ │ │ ├── searchbox_button.png
│ │ │ ├── slider_handle.png
│ │ │ ├── spinner_arrows.png
│ │ │ ├── tabs_icons.png
│ │ │ ├── Thumbs.db
│ │ │ ├── tree_icons.png
│ │ │ └── validatebox_warning.png
│ │ ├── layout.css
│ │ ├── linkbutton.css
│ │ ├── menubutton.css
│ │ ├── menu.css
│ │ ├── messager.css
│ │ ├── pagination.css
│ │ ├── panel.css
│ │ ├── progressbar.css
│ │ ├── propertygrid.css
│ │ ├── searchbox.css
│ │ ├── slider.css
│ │ ├── spinner.css
│ │ ├── splitbutton.css
│ │ ├── tabs.css
│ │ ├── tooltip.css
│ │ ├── tree.css
│ │ ├── validatebox.css
│ │ └── window.css
│ ├── icon.css
│ ├── icons
│ │ ├── back.png
│ │ ├── blank.gif
│ │ ├── cancel.png
│ │ ├── cut.png
│ │ ├── edit_add.png
│ │ ├── edit_remove.png
│ │ ├── filesave.png
│ │ ├── help.png
│ │ ├── ico001.ico
│ │ ├── ico002.ico
│ │ ├── ico003.ico
│ │ ├── ico01.gif
│ │ ├── ico02.gif
│ │ ├── icon1.jpg
│ │ ├── icon2.png
│ │ ├── icon3.png
│ │ ├── icon4.png
│ │ ├── icon5.png
│ │ ├── icon6.png
│ │ ├── job001.ico
│ │ ├── job002.ico
│ │ ├── mini_add.png
│ │ ├── mini_edit.png
│ │ ├── mini_refresh.png
│ │ ├── no.png
│ │ ├── ok.png
│ │ ├── pencil.png
│ │ ├── print.png
│ │ ├── pub001.ico
│ │ ├── pub002.ico
│ │ ├── pub003.ico
│ │ ├── pub004.png
│ │ ├── pub005.ico
│ │ ├── pub006.ico
│ │ ├── redo.png
│ │ ├── reload.png
│ │ ├── search.png
│ │ ├── set001.ico
│ │ ├── set002.ico
│ │ ├── set003.ico
│ │ ├── sum.png
│ │ ├── tip.png
│ │ └── undo.png
│ └── metro
│ ├── accordion.css
│ ├── calendar.css
│ ├── combobox.css
│ ├── combo.css
│ ├── datagrid.css
│ ├── datebox.css
│ ├── dialog.css
│ ├── easyui.css
│ ├── images
│ │ ├── accordion_arrows.png
│ │ ├── blank.gif
│ │ ├── calendar_arrows.png
│ │ ├── combo_arrow.png
│ │ ├── datagrid_icons.png
│ │ ├── datebox_arrow.png
│ │ ├── layout_arrows.png
│ │ ├── linkbutton_bg.png
│ │ ├── loading.gif
│ │ ├── menu_arrows.png
│ │ ├── messager_icons.png
│ │ ├── pagination_icons.png
│ │ ├── panel_tools.png
│ │ ├── searchbox_button.png
│ │ ├── slider_handle.png
│ │ ├── spinner_arrows.png
│ │ ├── tabs_icons.png
│ │ ├── Thumbs.db
│ │ ├── tree_icons.png
│ │ └── validatebox_warning.png
│ ├── layout.css
│ ├── linkbutton.css
│ ├── menubutton.css
│ ├── menu.css
│ ├── messager.css
│ ├── pagination.css
│ ├── panel.css
│ ├── progressbar.css
│ ├── propertygrid.css
│ ├── searchbox.css
│ ├── slider.css
│ ├── spinner.css
│ ├── splitbutton.css
│ ├── tabs.css
│ ├── tooltip.css
│ ├── tree.css
│ ├── validatebox.css
│ └── window.css
└── WEB-INF
├── classes
│ ├── beans.xml
│ ├── com
│ │ └── xunda
│ │ └── hr
│ │ ├── actions
│ │ │ ├── DeptAction.class
│ │ │ ├── EmployeeAction.class
│ │ │ ├── JobAction.class
│ │ │ ├── MainAction.class
│ │ │ ├── PostAction.class
│ │ │ ├── PowerAction.class
│ │ │ ├── SalaryAction.class
│ │ │ ├── TestAction.class
│ │ │ ├── TestAction-test-validation.xml
│ │ │ └── TrainAction.class
│ │ ├── dao
│ │ │ ├── IActionsDAO.class
│ │ │ ├── IDeptDAO.class
│ │ │ ├── IEmployeeDAO.class
│ │ │ ├── IJobDAO.class
│ │ │ ├── impl
│ │ │ │ ├── ActionsDAO.class
│ │ │ │ ├── BaseHibernateDAO.class
│ │ │ │ ├── DeptDAO.class
│ │ │ │ ├── EmployeeDAO.class
│ │ │ │ ├── JobDAO.class
│ │ │ │ ├── PostDAO.class
│ │ │ │ ├── PowerDAO.class
│ │ │ │ ├── SalaryDAO.class
│ │ │ │ └── TrainDAO.class
│ │ │ ├── IPostDAO.class
│ │ │ ├── IPowerDAO.class
│ │ │ ├── ISalaryDAO.class
│ │ │ └── ITrainDAO.class
│ │ ├── interceptors
│ │ │ └── adminInterceptor.class
│ │ ├── model
│ │ │ ├── AbstractActions.class
│ │ │ ├── AbstractActionsId.class
│ │ │ ├── AbstractDept.class
│ │ │ ├── AbstractEmployee.class
│ │ │ ├── AbstractJob.class
│ │ │ ├── AbstractPost.class
│ │ │ ├── AbstractPower.class
│ │ │ ├── AbstractSalary.class
│ │ │ ├── AbstractTrain.class
│ │ │ ├── Actions.class
│ │ │ ├── Actions.hbm.xml
│ │ │ ├── ActionsId.class
│ │ │ ├── Dept.class
│ │ │ ├── Dept.hbm.xml
│ │ │ ├── Employee.class
│ │ │ ├── Employee.hbm.xml
│ │ │ ├── Job.class
│ │ │ ├── Job.hbm.xml
│ │ │ ├── MenuInfo.class
│ │ │ ├── Post.class
│ │ │ ├── Post.hbm.xml
│ │ │ ├── Power.class
│ │ │ ├── Power.hbm.xml
│ │ │ ├── Salary.class
│ │ │ ├── Salary.hbm.xml
│ │ │ ├── Train.class
│ │ │ └── Train.hbm.xml
│ │ ├── page
│ │ │ ├── MyBeanUtils.class
│ │ │ ├── Paginable.class
│ │ │ ├── Pagination.class
│ │ │ └── SimplePage.class
│ │ ├── services
│ │ │ ├── IDeptService.class
│ │ │ ├── IEmployeeService.class
│ │ │ ├── IJobServices.class
│ │ │ ├── IMainService.class
│ │ │ ├── IMenuInfoService.class
│ │ │ ├── impl
│ │ │ │ ├── DeptService.class
│ │ │ │ ├── EmployeeService.class
│ │ │ │ ├── JobServices.class
│ │ │ │ ├── MainService.class
│ │ │ │ ├── MenuInfoService.class
│ │ │ │ ├── PostService.class
│ │ │ │ ├── PowerService.class
│ │ │ │ ├── SalaryServices.class
│ │ │ │ └── TrainService.class
│ │ │ ├── IPostService.class
│ │ │ ├── IPowerService.class
│ │ │ ├── ISalaryServices.class
│ │ │ └── ITrainService.class
│ │ ├── test
│ │ │ └── SpringTest.class
│ │ └── utils
│ │ ├── DateUtil.class
│ │ ├── JsonAlert.class
│ │ └── MD5.class
│ ├── hibernate.cfg.xml
│ ├── log4j.properties
│ ├── struts.properties
│ └── struts.xml
├── lib
│ ├── activation-1.0.2.jar
│ ├── antlr-2.7.6.jar
│ ├── asm-3.3.jar
│ ├── asm-commons-3.3.jar
│ ├── aspectjrt.jar
│ ├── aspectjweaver.jar
│ ├── c3p0-0.9.1.2.jar
│ ├── cfgatewayadapter.jar
│ ├── cglib-nodep-2.1_3.jar
│ ├── ckeditor-java-core-3.5.3.jar
│ ├── common-annotations.jar
│ ├── commons-beanutils-1.8.0.jar
│ ├── commons-codec-1.3.jar
│ ├── commons-collections-3.1.jar
│ ├── commons-fileupload-1.3.jar
│ ├── commons-httpclient-3.0.1.jar
│ ├── commons-io-1.4.jar
│ ├── commons-io-2.2.jar
│ ├── commons-lang-2.4.jar
│ ├── commons-lang3-3.1.jar
│ ├── commons-logging-1.1.3.jar
│ ├── commons-logging.jar
│ ├── dom4j-1.6.1.jar
│ ├── ehcache-1.2.3.jar
│ ├── ejb3-persistence.jar
│ ├── ezmorph-1.0.3.jar
│ ├── freemarker-2.3.19.jar
│ ├── hibernate3.jar
│ ├── hibernate-annotations.jar
│ ├── hibernate-cglib-repack-2.1_3.jar
│ ├── hibernate-commons-annotations.jar
│ ├── hibernate-entitymanager.jar
│ ├── javassist-3.11.0.GA.jar
│ ├── jcaptcha-1.0.jar
│ ├── json-lib-2.4-jdk15.jar
│ ├── jstl.jar
│ ├── jta-1.1.jar
│ ├── junit.jar
│ ├── log4j-1.2.15.jar
│ ├── log4j.jar
│ ├── mail-1.4.1.jar
│ ├── mysql-connector-java-5.1.29-bin.jar
│ ├── ognl-3.0.6.jar
│ ├── org.hamcrest.core_1.1.0.v20090501071000.jar
│ ├── serializer.jar
│ ├── slf4j-api-1.5.2.jar
│ ├── slf4j-log4j12.jar
│ ├── spring.jar
│ ├── spring.web-3.0.5.jar
│ ├── spring.web.servlet-3.0.5.jar
│ ├── standard.jar
│ ├── struts2-convention-plugin-2.3.15.3.jar
│ ├── struts2-core-2.3.15.3.jar
│ ├── struts2-dojo-plugin-2.3.15.3.jar
│ ├── struts2-json-plugin-2.3.15.3.jar
│ ├── struts2-spring-plugin-2.3.15.3.jar
│ ├── thumbnailator-0.4.3.jar
│ ├── xalan.jar
│ ├── xercesImpl.jar
│ ├── xml-apis.jar
│ └── xwork-core-2.3.15.3.jar
├── pages
│ ├── admin
│ │ ├── dept
│ │ │ └── index.jsp
│ │ ├── employee
│ │ │ └── index.jsp
│ │ ├── inc.jsp
│ │ ├── input.jsp
│ │ ├── job
│ │ │ └── index.jsp
│ │ ├── json.jsp
│ │ ├── login.jsp
│ │ ├── main.jsp
│ │ ├── post
│ │ │ └── index.jsp
│ │ ├── powe
│ │ │ ├── index.jsp
│ │ │ └── sys.jsp
│ │ ├── salary
│ │ │ └── index.jsp
│ │ └── train
│ │ ├── detail.jsp
│ │ ├── detailtrain.jsp
│ │ └── index.jsp
│ └── test.jsp
└── web.xml
58 directories, 569 files
标签:
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论