1.1.2 sql语句
- CREATE TABLE users(
- id varchar2(32) default SYS_GUID() PRIMARY KEY,
- email VARCHAR2(50) UNIQUE NOT NULL,
- username VARCHAR2(50),
- PASSWORD VARCHAR2(50),
- phoneNum VARCHAR2(20),
- STATUS INT
- )
1.1.3 实体类
- public class UserInfo {
- private String id;
- private String username;
- private String email;
- private String password;
- private String phoneNum;
- private int status;
- private String statusStr;
- private List
roles; - }
1.2.2 sql语句
- CREATE TABLE role(
- id varchar2(32) default SYS_GUID() PRIMARY KEY,
- roleName VARCHAR2(50) ,
- roleDesc VARCHAR2(50)
- )
1.2.3 实体类
- public class Role {
- private String id;
- private String roleName;
- private String roleDesc;
- private List
permissions; - private List
users; - }
- CREATE TABLE users_role(
- userId varchar2(32),
- roleId varchar2(32),
- PRIMARY KEY(userId,roleId),
- FOREIGN KEY (userId) REFERENCES users(id),
- FOREIGN KEY (roleId) REFERENCES role(id)
- )
1.3.2 sql语句
- CREATE TABLE permission(
- id varchar2(32) default SYS_GUID() PRIMARY KEY,
- permissionName VARCHAR2(50) ,
- url VARCHAR2(50)
- )
1.3.3 实体类
- public class Permission {
- private String id;
- private String permissionName;
- private String url;
- private List
roles; - }
- CREATE TABLE role_permission(
- permissionId varchar2(32),
- roleId varchar2(32),
- PRIMARY KEY(permissionId,roleId),
- FOREIGN KEY (permissionId) REFERENCES permission(id),
- FOREIGN KEY (roleId) REFERENCES role(id)
- )
- <dependencies>
- <dependency>
- <groupId>org.springframework.securitygroupId>
- <artifactId>spring-security-webartifactId>
- <version>5.0.1.RELEASEversion>
- dependency>
- <dependency>
- <groupId>org.springframework.securitygroupId>
- <artifactId>spring-security-configartifactId>
- <version>5.0.1.RELEASEversion>
- dependency>
- dependencies>
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
- instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-
- 4.0.0.xsd">
- <modelVersion>4.0.0modelVersion>
- <groupId>spring_security_demogroupId>
- <artifactId>SpringSecurity_quickStartartifactId>
- <version>0.0.1-SNAPSHOTversion>
- <packaging>warpackaging>
- <properties>
- <spring.version>5.0.2.RELEASEspring.version>
- <spring.security.version>5.0.1.RELEASEspring.security.version>
- properties>
- <dependencies>
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-coreartifactId>
- <version>${spring.version}version>
- dependency>
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-webartifactId>
- <version>${spring.version}version>
- dependency>
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-webmvcartifactId>
- <version>${spring.version}version>
- dependency>
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-context-supportartifactId>
- <version>${spring.version}version>
- dependency>
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-testartifactId>
- <version>${spring.version}version>
- dependency>
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-jdbcartifactId>
- <version>${spring.version}version>
- dependency>
- <dependency>
- <groupId>org.springframework.securitygroupId>
- <artifactId>spring-security-webartifactId>
- <version>${spring.security.version}version>
- dependency>
- <dependency>
- <groupId>org.springframework.securitygroupId>
- <artifactId>spring-security-configartifactId>
- <version>${spring.security.version}version>
- dependency>
- <dependency>
- <groupId>javax.servletgroupId>
- <artifactId>javax.servlet-apiartifactId>
- <version>3.1.0version>
- <scope>providedscope>
- dependency>
- dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.pluginsgroupId>
- <artifactId>maven-compiler-pluginartifactId>
- <version>3.2version>
- <configuration>
- <source>1.8source>
- <target>1.8target>
- <encoding>UTF-8encoding>
- configuration>
- plugin>
- <plugin>
- <groupId>org.apache.tomcat.mavengroupId>
- <artifactId>tomcat7-maven-pluginartifactId>
- <configuration>
- <port>8080port>
- <path>/path>
- configuration>
- plugin>
- plugins>
- build>
- project>
- <context-param>
- <param-name>contextConfigLocationparam-name>
- <param-value>classpath:spring-security.xmlparam-value>
- context-param>
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
- listener>
- <filter>
- <filter-name>springSecurityFilterChainfilter-name>
- <filter-class>org.springframework.web.filter.DelegatingFilterProxyfilter-class>
- filter>
- <filter-mapping>
- <filter-name>springSecurityFilterChainfilter-name>
- <url-pattern>/*url-pattern>
- filter-mapping>
- "1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:security="http://www.springframework.org/schema/security"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/security
- http://www.springframework.org/schema/security/spring-security.xsd">
- <security:http auto-config="true" use-expressions="false">
- <security:intercept-url pattern="/**" access="ROLE_USER" />
- security:http>
- <security:authentication-manager>
- <security:authentication-provider>
- <security:user-service>
- <security:user name="user" password="{noop}user"
- authorities="ROLE_USER" />
- <security:user name="admin" password="{noop}admin"
- authorities="ROLE_ADMIN" />
- security:user-service>
- security:authentication-provider>
- security:authentication-manager>
- beans>
- "1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:security="http://www.springframework.org/schema/security"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/security
- http://www.springframework.org/schema/security/spring-security.xsd">
- <security:http security="none" pattern="/login.html" />
- <security:http security="none" pattern="/failer.html" />
- <security:http auto-config="true" use-expressions="false">
- <security:intercept-url pattern="/**" access="ROLE_USER" />
- <security:form-login login-page="/login.html"
- login-processing-url="/login" username-parameter="username"
- password-parameter="password" authentication-failure-url="/failer.html"
- default-target-url="/success.html"
- />
- <security:logout invalidate-session="true" logout-url="/logout"
- logout-success-url="/login.jsp" />
- <security:csrf disabled="true" />
- security:http>
- <security:authentication-manager>
- <security:authentication-provider>
- <security:user-service>
- <security:user name="user" password="{noop}user"
- authorities="ROLE_USER" />
- <security:user name="admin" password="{noop}admin"
- authorities="ROLE_ADMIN" />
- security:user-service>
- security:authentication-provider>
- security:authentication-manager>
- beans>
- html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>Insert title heretitle>
- head>
- <body>
- <form action="login" method="post">
- <table>
- <tr>
- <td>用户名:td>
- <td><input type="text" name="username" />td>
- tr>
- <tr>
- <td>密码:td>
- <td><input type="password" name="password" />td>
- tr>
- <tr>
- <td colspan="2" align="center"><input type="submit" value="登录" />
- <input type="reset" value="重置" />td>
- tr>
- table>
- form>
- body>
- html>
- html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>Insert title heretitle>
- head>
- <body>
- success html<br>
- <a href="logout">退出a>
- body>
- html>
- html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>Insert title heretitle>
- head>
- <body>登录失败
- body>
- html>
- public interface UserDetails extends Serializable {
- Collection extends GrantedAuthority> getAuthorities();
- String getPassword();
- String getUsername();
- boolean isAccountNonExpired();
- boolean isAccountNonLocked();
- boolean isCredentialsNonExpired();
- boolean isEnabled();
- }
- public class User implements UserDetails, CredentialsContainer {
- private String password;
- private final String username;
- private final Set
authorities; - private final boolean accountNonExpired; //帐户是否过期
- private final boolean accountNonLocked; //帐户是否锁定
- private final boolean credentialsNonExpired; //认证是否过期
- private final boolean enabled; //帐户是否可用
- }
- public interface UserDetailsService {
- UserDetails loadUserByUsername(String username) throws UsernameNotFoundException;
- }
- <security:authentication-manager>
- <security:authentication-provider user-service-ref="userService">
- security:authentication-provider>
- security:authentication-manager>
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
-
- <title>数据 - AdminLTE2定制版 | Log intitle>
-
- <meta
- content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"
- name="viewport">
-
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap/css/bootstrap.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/font-awesome/css/font-awesome.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/ionicons/css/ionicons.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/adminLTE/css/AdminLTE.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/iCheck/square/blue.css">
- head>
-
- <body class="hold-transition login-page">
- <div class="login-box">
- <div class="login-logo">
- <a href="all-admin-index.html"><b>ITCASTb>后台管理系统a>
- div>
-
- <div class="login-box-body">
- <p class="login-box-msg">登录系统p>
-
- <form action="${pageContext.request.contextPath}/login.do" method="post">
- <div class="form-group has-feedback">
- <input type="text" name="username" class="form-control"
- placeholder="用户名"> <span
- class="glyphicon glyphicon-envelope form-control-feedback">span>
- div>
- <div class="form-group has-feedback">
- <input type="password" name="password" class="form-control"
- placeholder="密码"> <span
- class="glyphicon glyphicon-lock form-control-feedback">span>
- div>
- <div class="row">
- <div class="col-xs-8">
- <div class="checkbox icheck">
- <label><input type="checkbox"> 记住 下次自动登录label>
- div>
- div>
-
- <div class="col-xs-4">
- <button type="submit" class="btn btn-primary btn-block btn-flat">登录button>
- div>
-
- div>
- form>
-
- <a href="#">忘记密码a><br>
-
-
- div>
-
- div>
-
-
-
-
-
- <script
- src="${pageContext.request.contextPath}/plugins/jQuery/jquery-2.2.3.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap/js/bootstrap.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/iCheck/icheck.min.js">script>
- <script>
- $(function() {
- $('input').iCheck({
- checkboxClass : 'icheckbox_square-blue',
- radioClass : 'iradio_square-blue',
- increaseArea : '20%' // optional
- });
- });
- script>
- body>
-
- html>
- public interface IUserService extends UserDetailsService{
- }
- @Service("userService")
- @Transactional
- public class UserServiceImpl implements IUserService {
- @Autowired
- private IUserDao userDao;
- @Override
- public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
- UserInfo userInfo = userDao.findByUsername(username);
- List
roles = userInfo.getRoles(); - List
authoritys = getAuthority(roles); - User user = new User(userInfo.getUsername(), "{noop}" + userInfo.getPassword(),
- userInfo.getStatus() == 0 ? false : true, true, true, true, authoritys);
- return user;
- }
- private List
getAuthority(List roles) { - List
authoritys = new ArrayList(); - for (Role role : roles) {
- authoritys.add(new SimpleGrantedAuthority(role.getRoleName()));
- }
- return authoritys;
- }
- }
- public interface IUserDao {
- @Select("select * from user where id=#{id}")
- public UserInfo findById(Long id) throws Exception;
- @Select("select * from user where username=#{username}")
- @Results({
- @Result(id = true, property = "id", column = "id"),
- @Result(column = "username", property = "username"),
- @Result(column = "email", property = "email"),
- @Result(column = "password", property = "password"),
- @Result(column = "phoneNum", property = "phoneNum"),
- @Result(column = "status", property = "status"),
- @Result(column = "id", property = "roles", javaType = List.class, many =
- @Many(select = "com.itheima.ssm.dao.IRoleDao.findRoleByUserId")) })
- public UserInfo findByUsername(String username);
- }
<security:logout invalidate-session="true" logout-url="/logout.do" logout-successurl="/login.jsp" />
- <a href="${pageContext.request.contextPath}/logout.do"
- class="btn btn-default btn-flat">注销a>
- @Controller
- @RequestMapping("/user")
- public class UserControlller {
- @RequestMapping("/findAll.do")
- public ModelAndView findAll() throws Exception {
- List
users = userService.findAll(); - ModelAndView mv = new ModelAndView();
- mv.addObject("userlist", users);
- mv.setViewName("user-list");
- return mv;
- }
- }
- @Select("select * from user")
- public List
findAll();
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <title>数据 - AdminLTE2定制版title>
- <meta name="description" content="AdminLTE2定制版">
- <meta name="keywords" content="AdminLTE2定制版">
-
- <meta
- content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"
- name="viewport">
-
-
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap/css/bootstrap.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/font-awesome/css/font-awesome.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/ionicons/css/ionicons.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/iCheck/square/blue.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/morris/morris.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-1.2.2.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/datepicker/datepicker3.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/datatables/dataTables.bootstrap.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.theme.default.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/select2/select2.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/colorpicker/bootstrap-colorpicker.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap-markdown/css/bootstrap-markdown.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/adminLTE/css/AdminLTE.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/adminLTE/css/skins/_all-skins.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/css/style.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.skinNice.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap-slider/slider.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.css">
- head>
-
- <body class="hold-transition skin-purple sidebar-mini">
-
- <div class="wrapper">
-
-
- <jsp:include page="header.jsp">jsp:include>
-
-
- <jsp:include page="aside.jsp">jsp:include>
-
-
-
- <div class="content-wrapper">
-
-
- <section class="content-header">
- <h1>
- 用户管理 <small>用户表单small>
- h1>
- <ol class="breadcrumb">
- <li><a href="${pageContext.request.contextPath}/index.jsp"><i
- class="fa fa-dashboard">i> 首页a>li>
- <li><a
- href="${pageContext.request.contextPath}/user/findAll.do">用户管理a>li>
- <li class="active">用户表单li>
- ol>
- section>
-
-
- <form action="${pageContext.request.contextPath}/user/save.do"
- method="post">
-
- <section class="content">
-
- <div class="panel panel-default">
- <div class="panel-heading">用户信息div>
- <div class="row data-type">
-
- <div class="col-md-2 title">用户名称div>
- <div class="col-md-4 data">
- <input type="text" class="form-control" name="username"
- placeholder="用户名称" value="">
- div>
- <div class="col-md-2 title">密码div>
- <div class="col-md-4 data">
- <input type="password" class="form-control" name="password"
- placeholder="密码" value="">
- div>
- <div class="col-md-2 title">邮箱div>
- <div class="col-md-4 data">
- <input type="text" class="form-control" name="email"
- placeholder="邮箱" value="">
- div>
- <div class="col-md-2 title">联系电话div>
- <div class="col-md-4 data">
- <input type="text" class="form-control" name="phoneNum"
- placeholder="联系电话" value="">
- div>
- <div class="col-md-2 title">用户状态div>
- <div class="col-md-4 data">
- <select class="form-control select2" style="width: 100%"
- name="status">
- <option value="0" selected="selected">关闭option>
- <option value="1">开启option>
- select>
- div>
-
- div>
- div>
-
- <div class="box-tools text-center">
- <button type="submit" class="btn bg-maroon">保存button>
- <button type="button" class="btn bg-default"
- onclick="history.back(-1);">返回button>
- div>
- section>
-
- form>
- div>
-
-
-
- <footer class="main-footer">
- <div class="pull-right hidden-xs">
- <b>Versionb> 1.0.8
- div>
- <strong>Copyright © 2014-2017 <a
- href="http://www.itcast.cn">研究院研发部a>.
- strong> All rights reserved. footer>
-
-
- div>
-
-
- <script
- src="${pageContext.request.contextPath}/plugins/jQuery/jquery-2.2.3.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/jQueryUI/jquery-ui.min.js">script>
- <script>
- $.widget.bridge('uibutton', $.ui.button);
- script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap/js/bootstrap.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/raphael/raphael-min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/morris/morris.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/sparkline/jquery.sparkline.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-world-mill-en.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/knob/jquery.knob.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/daterangepicker/moment.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.zh-CN.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/datepicker/bootstrap-datepicker.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/datepicker/locales/bootstrap-datepicker.zh-CN.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/slimScroll/jquery.slimscroll.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/fastclick/fastclick.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/iCheck/icheck.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/adminLTE/js/app.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/select2/select2.full.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/colorpicker/bootstrap-colorpicker.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap-wysihtml5.zh-CN.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/bootstrap-markdown.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-markdown/locale/bootstrap-markdown.zh.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/markdown.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/to-markdown.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/ckeditor/ckeditor.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.date.extensions.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.extensions.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/datatables/jquery.dataTables.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/datatables/dataTables.bootstrap.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/chartjs/Chart.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/flot/jquery.flot.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/flot/jquery.flot.resize.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/flot/jquery.flot.pie.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/flot/jquery.flot.categories.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-slider/bootstrap-slider.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js">script>
-
- <script>
- $(document).ready(function() {
- // 选择框
- $(".select2").select2();
-
- // WYSIHTML5编辑器
- $(".textarea").wysihtml5({
- locale : 'zh-CN'
- });
- });
-
- // 设置激活菜单
- function setSidebarActive(tagUri) {
- var liObj = $("#" + tagUri);
- if (liObj.length > 0) {
- liObj.parent().parent().addClass("active");
- liObj.addClass("active");
- }
- }
- script>
-
-
- body>
-
- html>
- @Controller
- @RequestMapping("/user")
- public class UserControlller {
- @Autowired
- private IUserService userService;
- @RequestMapping("/save.do")
- public String save(UserInfo user) throws Exception {
- userService.save(user);
- return "redirect:findAll.do";
- }
- }
- @Service("userService")
- @Transactional
- public class UserServiceImpl implements IUserService {
- @Autowired
- private IUserDao userDao;
- @Autowired
- private PasswordEncoder passwordEncoder;
- @Override
- public void save(UserInfo user) throws Exception {
- user.setPassword(passwordEncoder.encode(user.getPassword()));
- userDao.save(user);
- }
- }
- <bean id="passwordEncoder"
- class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"/>
- @Insert("insert into user(email,username,password,phoneNum,status) value(#{email},#
- {username},#{password},#{phoneNum},#{status})")
- public void save(UserInfo user) throws Exception;
$("#collapse-table").treetable({ expandable : true });
- @Controller
- @RequestMapping("/user")
- public class UserControlller {
- @Autowired
- private IUserService userService;
- @RequestMapping("/findById.do")
- public ModelAndView findById(@RequestParam(name = "id", required = true) Long id) throws
- Exception {
- UserInfo user = userService.findById(id);
- ModelAndView mv = new ModelAndView();
- mv.addObject("user", user);
- mv.setViewName("user-show");
- return mv;
- }
- }
- @Select("select * from user where id=#{id}")
- @Results({ @Result(id = true, property = "id", column = "id"), @Result(column = "username",
- property = "username"),
- @Result(column = "email", property = "email"), @Result(column =
- "password", property = "password"),
- @Result(column = "phoneNum", property = "phoneNum"), @Result(column =
- "status", property = "status"),
- @Result(column = "id", property = "roles", javaType = List.class, many =
- @Many(select = "com.itheima.ssm.dao.IRoleDao.findRoleByUserId")) })
- public UserInfo findById(Long id) throws Exception;
- @Select("select * from role where id in( select roleId from user_role where userId=#{userId})")
- @Results(
- {
- @Result(id=true,column="id",property="id"),
- @Result(column="roleName",property="roleName"),
- @Result(column="roleDesc",property="roleDesc"),
- @Result(column="id",property="permissions",javaType=List.class,many=@Many(select="com.itheima.ssm
- .dao.IPermissionDao.findByRoleId"))
- })
- public List
findRoleByUserId(Long userId);
- @Select("select * from permission where id in (select permissionId from role_permission where
- roleId=#{roleId})")
- public List
findByRoleId(Long roleId);
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
- html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
-
- <title>数据 - AdminLTE2定制版title>
- <meta name="description" content="AdminLTE2定制版">
- <meta name="keywords" content="AdminLTE2定制版">
-
- <meta
- content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"
- name="viewport">
-
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap/css/bootstrap.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/font-awesome/css/font-awesome.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/ionicons/css/ionicons.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/iCheck/square/blue.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/morris/morris.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-1.2.2.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/datepicker/datepicker3.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/datatables/dataTables.bootstrap.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.theme.default.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/select2/select2.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/colorpicker/bootstrap-colorpicker.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap-markdown/css/bootstrap-markdown.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/adminLTE/css/AdminLTE.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/adminLTE/css/skins/_all-skins.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/css/style.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.skinNice.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap-slider/slider.css">
- head>
-
- <body class="hold-transition skin-blue sidebar-mini">
-
- <div class="wrapper">
-
-
- <jsp:include page="header.jsp">jsp:include>
-
-
-
- <jsp:include page="aside.jsp">jsp:include>
-
-
-
- <div class="content-wrapper">
-
-
- <section class="content-header">
- <h1>
- 角色管理 <small>全部角色small>
- h1>
- <ol class="breadcrumb">
- <li><a href="${pageContext.request.contextPath}/index.jsp"><i
- class="fa fa-dashboard">i> 首页a>li>
- <li><a
- href="${pageContext.request.contextPath}/role/findAll.do">角色管理a>li>
-
- <li class="active">全部角色li>
- ol>
- section>
-
-
-
- <section class="content">
- <div class="box box-primary">
- <div class="box-header with-border">
- <h3 class="box-title">列表h3>
- div>
-
- <div class="box-body">
-
-
- <div class="table-box">
-
-
- <div class="pull-left">
- <div class="form-group form-inline">
- <div class="btn-group">
- <button type="button" class="btn btn-default" title="新建" onclick="location.href='${pageContext.request.contextPath}/pages/role-add.jsp'">
- <i class="fa fa-file-o">i> 新建
- button>
-
- <button type="button" class="btn btn-default" title="刷新">
- <i class="fa fa-refresh">i> 刷新
- button>
- div>
- div>
- div>
- <div class="box-tools pull-right">
- <div class="has-feedback">
- <input type="text" class="form-control input-sm"
- placeholder="搜索"> <span
- class="glyphicon glyphicon-search form-control-feedback">span>
- div>
- div>
-
-
-
- <table id="dataList"
- class="table table-bordered table-striped table-hover dataTable">
- <thead>
- <tr>
- <th class="" style="padding-right: 0px"><input
- id="selall" type="checkbox" class="icheckbox_square-blue">
- th>
- <th class="sorting_asc">IDth>
- <th class="sorting_desc">角色名称th>
- <th class="sorting_asc sorting_asc_disabled">描述th>
- <th class="text-center">操作th>
- tr>
- thead>
- <tbody>
-
- <c:forEach items="${roleList}" var="role">
- <tr>
- <td><input name="ids" type="checkbox">td>
- <td>${role.id }td>
- <td>${role.roleName }td>
- <td>${role.roleDesc }td>
- <td class="text-center">
- <a href="${pageContext.request.contextPath}/role/findById.do?id=${role.id}" class="btn bg-olive btn-xs">详情a>
- <a href="${pageContext.request.contextPath}/role/deleteRole.do?id=${role.id}" class="btn bg-olive btn-xs">删除角色a>
- <a href="${pageContext.request.contextPath}/role/findRoleByIdAndAllPermission.do?id=${role.id}" class="btn bg-olive btn-xs">添加权限a>
- td>
- tr>
- c:forEach>
- tbody>
-
- table>
-
-
- div>
-
-
- div>
-
-
-
- <div class="box-footer">
- <div class="pull-left">
- <div class="form-group form-inline">
- 总共2 页,共14 条数据。 每页 <select class="form-control">
- <option>1option>
- <option>2option>
- <option>3option>
- <option>4option>
- <option>5option>
- select> 条
- div>
- div>
-
- <div class="box-tools pull-right">
- <ul class="pagination">
- <li><a href="#" aria-label="Previous">首页a>li>
- <li><a href="#">上一页a>li>
- <li><a href="#">1a>li>
- <li><a href="#">2a>li>
- <li><a href="#">3a>li>
- <li><a href="#">4a>li>
- <li><a href="#">5a>li>
- <li><a href="#">下一页a>li>
- <li><a href="#" aria-label="Next">尾页a>li>
- ul>
- div>
-
- div>
-
-
- div>
-
- section>
-
-
- div>
-
-
-
-
- <footer class="main-footer">
- <div class="pull-right hidden-xs">
- <b>Versionb> 1.0.8
- div>
- <strong>Copyright © 2014-2017 <a
- href="http://www.itcast.cn">研究院研发部a>.
- strong> All rights reserved. footer>
-
-
- div>
-
- <script src="../plugins/jQuery/jquery-2.2.3.min.js">script>
- <script src="../plugins/jQueryUI/jquery-ui.min.js">script>
- <script>
- $.widget.bridge('uibutton', $.ui.button);
- script>
- <script src="../plugins/bootstrap/js/bootstrap.min.js">script>
- <script src="../plugins/raphael/raphael-min.js">script>
- <script src="../plugins/morris/morris.min.js">script>
- <script src="../plugins/sparkline/jquery.sparkline.min.js">script>
- <script src="../plugins/jvectormap/jquery-jvectormap-1.2.2.min.js">script>
- <script src="../plugins/jvectormap/jquery-jvectormap-world-mill-en.js">script>
- <script src="../plugins/knob/jquery.knob.js">script>
- <script src="../plugins/daterangepicker/moment.min.js">script>
- <script src="../plugins/daterangepicker/daterangepicker.js">script>
- <script src="../plugins/daterangepicker/daterangepicker.zh-CN.js">script>
- <script src="../plugins/datepicker/bootstrap-datepicker.js">script>
- <script
- src="../plugins/datepicker/locales/bootstrap-datepicker.zh-CN.js">script>
- <script
- src="../plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js">script>
- <script src="../plugins/slimScroll/jquery.slimscroll.min.js">script>
- <script src="../plugins/fastclick/fastclick.js">script>
- <script src="../plugins/iCheck/icheck.min.js">script>
- <script src="../plugins/adminLTE/js/app.min.js">script>
- <script src="../plugins/treeTable/jquery.treetable.js">script>
- <script src="../plugins/select2/select2.full.min.js">script>
- <script src="../plugins/colorpicker/bootstrap-colorpicker.min.js">script>
- <script
- src="../plugins/bootstrap-wysihtml5/bootstrap-wysihtml5.zh-CN.js">script>
- <script src="../plugins/bootstrap-markdown/js/bootstrap-markdown.js">script>
- <script
- src="../plugins/bootstrap-markdown/locale/bootstrap-markdown.zh.js">script>
- <script src="../plugins/bootstrap-markdown/js/markdown.js">script>
- <script src="../plugins/bootstrap-markdown/js/to-markdown.js">script>
- <script src="../plugins/ckeditor/ckeditor.js">script>
- <script src="../plugins/input-mask/jquery.inputmask.js">script>
- <script
- src="../plugins/input-mask/jquery.inputmask.date.extensions.js">script>
- <script src="../plugins/input-mask/jquery.inputmask.extensions.js">script>
- <script src="../plugins/datatables/jquery.dataTables.min.js">script>
- <script src="../plugins/datatables/dataTables.bootstrap.min.js">script>
- <script src="../plugins/chartjs/Chart.min.js">script>
- <script src="../plugins/flot/jquery.flot.min.js">script>
- <script src="../plugins/flot/jquery.flot.resize.min.js">script>
- <script src="../plugins/flot/jquery.flot.pie.min.js">script>
- <script src="../plugins/flot/jquery.flot.categories.min.js">script>
- <script src="../plugins/ionslider/ion.rangeSlider.min.js">script>
- <script src="../plugins/bootstrap-slider/bootstrap-slider.js">script>
- <script>
- $(document).ready(function() {
- // 选择框
- $(".select2").select2();
-
- // WYSIHTML5编辑器
- $(".textarea").wysihtml5({
- locale : 'zh-CN'
- });
- });
-
- // 设置激活菜单
- function setSidebarActive(tagUri) {
- var liObj = $("#" + tagUri);
- if (liObj.length > 0) {
- liObj.parent().parent().addClass("active");
- liObj.addClass("active");
- }
- }
-
- $(document)
- .ready(
- function() {
-
- // 激活导航位置
- setSidebarActive("admin-datalist");
-
- // 列表按钮
- $("#dataList td input[type='checkbox']")
- .iCheck(
- {
- checkboxClass : 'icheckbox_square-blue',
- increaseArea : '20%'
- });
- // 全选操作
- $("#selall")
- .click(
- function() {
- var clicks = $(this).is(
- ':checked');
- if (!clicks) {
- $(
- "#dataList td input[type='checkbox']")
- .iCheck(
- "uncheck");
- } else {
- $(
- "#dataList td input[type='checkbox']")
- .iCheck("check");
- }
- $(this).data("clicks",
- !clicks);
- });
- });
- script>
- body>
-
- html>
- @RequestMapping("/role")
- @Controller
- public class RoleController {
- @Autowired
- private IRoleService roleService;
- @RequestMapping("/findAll.do")
- public ModelAndView findAll() throws Exception {
- List
roleList = roleService.findAll(); - ModelAndView mv = new ModelAndView();
- mv.addObject("roleList", roleList);
- mv.setViewName("role-list");
- return mv;
- }
- @Select("select * from role")
- public List
findAll();
- @RequestMapping("/role")
- @Controller
- public class RoleController {
- @Autowired
- private IRoleService roleService;
- @RequestMapping("/save.do")
- public String save(Role role) {
- roleService.save(role);
- return "redirect:findAll.do";
- }
- }
- @Insert("insert into role(roleName,roleDesc) value(#{roleName},#{roleDesc})")
- public void save(Role role);
- @RequestMapping("/permission")
- @Controller
- public class PermissionController {
- @Autowired
- private IPermissionService permissionService;
- @RequestMapping("/findAll.do")
- public ModelAndView findAll() throws Exception {
- List
permissionList = permissionService.findAll(); - ModelAndView mv = new ModelAndView();
- mv.addObject("permissionList", permissionList);
- mv.setViewName("permission-list");
- return mv;
- }
- }
- @Select("select * from permission")
- public List
findAll();
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <title>数据 - AdminLTE2定制版title>
- <meta name="description" content="AdminLTE2定制版">
- <meta name="keywords" content="AdminLTE2定制版">
-
- <meta
- content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"
- name="viewport">
-
-
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap/css/bootstrap.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/font-awesome/css/font-awesome.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/ionicons/css/ionicons.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/iCheck/square/blue.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/morris/morris.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-1.2.2.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/datepicker/datepicker3.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/datatables/dataTables.bootstrap.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.theme.default.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/select2/select2.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/colorpicker/bootstrap-colorpicker.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap-markdown/css/bootstrap-markdown.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/adminLTE/css/AdminLTE.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/adminLTE/css/skins/_all-skins.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/css/style.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.skinNice.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap-slider/slider.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.css">
- head>
-
- <body class="hold-transition skin-purple sidebar-mini">
-
- <div class="wrapper">
-
-
- <jsp:include page="header.jsp">jsp:include>
-
-
- <jsp:include page="aside.jsp">jsp:include>
-
-
-
- <div class="content-wrapper">
-
-
- <section class="content-header">
- <h1>
- 资源权限管理 <small>资源权限表单small>
- h1>
- <ol class="breadcrumb">
- <li><a href="${pageContext.request.contextPath}/index.jsp"><i
- class="fa fa-dashboard">i> 首页a>li>
- <li><a href="${pageContext.request.contextPath}/permission/findAll.do">资源权限管理a>li>
- <li class="active">资源权限表单li>
- ol>
- section>
-
-
- <form action="${pageContext.request.contextPath}/permission/save.do"
- method="post">
-
- <section class="content">
-
- <div class="panel panel-default">
- <div class="panel-heading">资源权限信息div>
- <div class="row data-type">
-
- <div class="col-md-2 title">权限名称div>
- <div class="col-md-4 data">
- <input type="text" class="form-control" name="permissionName"
- placeholder="权限名称" value="">
- div>
- <div class="col-md-2 title">RULdiv>
- <div class="col-md-4 data">
- <input type="text" class="form-control" name="url"
- placeholder="URL" value="">
- div>
-
-
- div>
- div>
-
- <div class="box-tools text-center">
- <button type="submit" class="btn bg-maroon">保存button>
- <button type="button" class="btn bg-default"
- onclick="history.back(-1);">返回button>
- div>
- section>
-
- form>
- div>
-
-
-
- <footer class="main-footer">
- <div class="pull-right hidden-xs">
- <b>Versionb> 1.0.8
- div>
- <strong>Copyright © 2014-2017 <a
- href="http://www.itcast.cn">研究院研发部a>.
- strong> All rights reserved. footer>
-
-
- div>
-
-
- <script
- src="${pageContext.request.contextPath}/plugins/jQuery/jquery-2.2.3.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/jQueryUI/jquery-ui.min.js">script>
- <script>
- $.widget.bridge('uibutton', $.ui.button);
- script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap/js/bootstrap.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/raphael/raphael-min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/morris/morris.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/sparkline/jquery.sparkline.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-world-mill-en.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/knob/jquery.knob.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/daterangepicker/moment.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.zh-CN.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/datepicker/bootstrap-datepicker.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/datepicker/locales/bootstrap-datepicker.zh-CN.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/slimScroll/jquery.slimscroll.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/fastclick/fastclick.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/iCheck/icheck.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/adminLTE/js/app.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/select2/select2.full.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/colorpicker/bootstrap-colorpicker.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap-wysihtml5.zh-CN.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/bootstrap-markdown.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-markdown/locale/bootstrap-markdown.zh.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/markdown.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/to-markdown.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/ckeditor/ckeditor.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.date.extensions.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.extensions.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/datatables/jquery.dataTables.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/datatables/dataTables.bootstrap.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/chartjs/Chart.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/flot/jquery.flot.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/flot/jquery.flot.resize.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/flot/jquery.flot.pie.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/flot/jquery.flot.categories.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-slider/bootstrap-slider.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js">script>
-
- <script>
- $(document).ready(function() {
- // 选择框
- $(".select2").select2();
-
- // WYSIHTML5编辑器
- $(".textarea").wysihtml5({
- locale : 'zh-CN'
- });
- });
-
- // 设置激活菜单
- function setSidebarActive(tagUri) {
- var liObj = $("#" + tagUri);
- if (liObj.length > 0) {
- liObj.parent().parent().addClass("active");
- liObj.addClass("active");
- }
- }
-
- script>
-
-
- body>
-
- html>
5.2.2.PermissionController
- @RequestMapping("/permission")
- @Controller
- public class PermissionController {
- @Autowired
- private IPermissionService permissionService;
- @RequestMapping("/save.do")
- public String save(Permission p) throws Exception {
- permissionService.save(p);
- return "redirect:findAll.do";
- }
- }
- @Insert("insert into permission(permissionName,url) value(#{permissionName},#{url})")
- public void save(Permission p);
- <a href="${pageContext.request.contextPath}/user/findUserByIdAndAllRole.do?id=${user.id}"
- class="btn bg-olive btn-xs">添加角色a>
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
- html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <title>数据 - AdminLTE2定制版title>
- <meta name="description" content="AdminLTE2定制版">
- <meta name="keywords" content="AdminLTE2定制版">
-
- <meta
- content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"
- name="viewport">
-
-
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap/css/bootstrap.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/font-awesome/css/font-awesome.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/ionicons/css/ionicons.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/iCheck/square/blue.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/morris/morris.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-1.2.2.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/datepicker/datepicker3.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/datatables/dataTables.bootstrap.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.theme.default.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/select2/select2.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/colorpicker/bootstrap-colorpicker.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap-markdown/css/bootstrap-markdown.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/adminLTE/css/AdminLTE.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/adminLTE/css/skins/_all-skins.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/css/style.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.skinNice.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap-slider/slider.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.css">
- head>
-
- <body class="hold-transition skin-purple sidebar-mini">
-
- <div class="wrapper">
-
-
- <jsp:include page="header.jsp">jsp:include>
-
-
- <jsp:include page="aside.jsp">jsp:include>
-
-
-
- <div class="content-wrapper">
-
-
- <section class="content-header">
- <h1>
- 用户管理 <small>添加角色表单small>
- h1>
- <ol class="breadcrumb">
- <li><a href="${pageContext.request.contextPath}/index.jsp"><i
- class="fa fa-dashboard">i> 首页a>li>
- <li><a
- href="${pageContext.request.contextPath}/user/findAll.do">用户管理a>li>
- <li class="active">添加角色表单li>
- ol>
- section>
-
-
- <form
- action="${pageContext.request.contextPath}/user/addRoleToUser.do"
- method="post">
-
- <section class="content">
-
- <input type="hidden" name="userId" value="${user.id}">
-
- <table id="dataList"
- class="table table-bordered table-striped table-hover dataTable">
- <thead>
- <tr>
- <th class="" style="padding-right: 0px">
- <input id="selall"
- type="checkbox" class="icheckbox_square-blue">th>
- <th class="sorting_asc">IDth>
- <th class="sorting">角色名称th>
- <th class="sorting">角色描述th>
- tr>
- thead>
- <tbody>
- <c:forEach items="${roleList}" var="role">
- <tr>
- <td>
-
- <input name="ids" type="checkbox" value="${role.id}">
-
- td>
- <td>${role.id}td>
- <td>${role.roleName }td>
- <td>${role.roleDesc}td>
-
- tr>
- c:forEach>
- tbody>
-
- table>
-
- <div class="box-tools text-center">
- <button type="submit" class="btn bg-maroon">保存button>
- <button type="button" class="btn bg-default"
- onclick="history.back(-1);">返回button>
- div>
- section>
-
- form>
- div>
-
-
-
- <footer class="main-footer">
- <div class="pull-right hidden-xs">
- <b>Versionb> 1.0.8
- div>
- <strong>Copyright © 2014-2017 <a
- href="http://www.itcast.cn">研究院研发部a>.
- strong> All rights reserved. footer>
-
-
- div>
-
-
- <script
- src="${pageContext.request.contextPath}/plugins/jQuery/jquery-2.2.3.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/jQueryUI/jquery-ui.min.js">script>
- <script>
- $.widget.bridge('uibutton', $.ui.button);
- script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap/js/bootstrap.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/raphael/raphael-min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/morris/morris.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/sparkline/jquery.sparkline.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-world-mill-en.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/knob/jquery.knob.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/daterangepicker/moment.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.zh-CN.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/datepicker/bootstrap-datepicker.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/datepicker/locales/bootstrap-datepicker.zh-CN.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/slimScroll/jquery.slimscroll.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/fastclick/fastclick.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/iCheck/icheck.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/adminLTE/js/app.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/select2/select2.full.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/colorpicker/bootstrap-colorpicker.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap-wysihtml5.zh-CN.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/bootstrap-markdown.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-markdown/locale/bootstrap-markdown.zh.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/markdown.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/to-markdown.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/ckeditor/ckeditor.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.date.extensions.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.extensions.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/datatables/jquery.dataTables.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/datatables/dataTables.bootstrap.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/chartjs/Chart.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/flot/jquery.flot.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/flot/jquery.flot.resize.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/flot/jquery.flot.pie.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/flot/jquery.flot.categories.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-slider/bootstrap-slider.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js">script>
-
- <script>
- $(document).ready(function() {
- // 选择框
- $(".select2").select2();
-
- // WYSIHTML5编辑器
- $(".textarea").wysihtml5({
- locale : 'zh-CN'
- });
- // 全选操作
- $("#selall").click(function() {
- var clicks = $(this).is(':checked');
- if (!clicks) {
- $("#dataList td input[type='checkbox']").iCheck("uncheck");
- } else {
- $("#dataList td input[type='checkbox']").iCheck("check");
- }
- $(this).data("clicks", !clicks);
- });
- });
-
- // 设置激活菜单
- function setSidebarActive(tagUri) {
- var liObj = $("#" + tagUri);
- if (liObj.length > 0) {
- liObj.parent().parent().addClass("active");
- liObj.addClass("active");
- }
- }
- script>
-
-
- body>
-
- html>
- @RequestMapping("/findUserByIdAndAllRole.do")
- public ModelAndView findUserByIdAndAllRole(Long id) throws Exception {
- UserInfo user = userService.findById(id);
- List
roleList = roleService.findOtherRole(id); - ModelAndView mv = new ModelAndView();
- mv.addObject("user", user);
- mv.addObject("roleList", roleList);
- mv.setViewName("user-role-add");
- return mv;
- }
- @RequestMapping("/addRoleToUser.do")
- public String addRoleToUser(Long userId, Long[] ids) throws Exception {
- userService.addRoleToUser(userId,ids);
- return "redirect:findAll.do";
- }
- @Select("select * from role where id not in( select roleId from user_role where userId=#
- {id})")
- public List<Role> findOtherRole(Long id);
- @Insert("insert into user_role(userId,roleId) value(#{userId},#{roleId})")
- public void addRoleToUser(@Param("userId") Long userId, @Param("roleId") Long roleId);
- <a href="${pageContext.request.contextPath}/role/findRoleByIdAndAllPermission.do?
- id=${role.id}" class="btn bg-olive btn-xs">添加权限a>
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
- html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <title>数据 - AdminLTE2定制版title>
- <meta name="description" content="AdminLTE2定制版">
- <meta name="keywords" content="AdminLTE2定制版">
-
- <meta
- content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"
- name="viewport">
-
-
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap/css/bootstrap.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/font-awesome/css/font-awesome.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/ionicons/css/ionicons.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/iCheck/square/blue.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/morris/morris.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-1.2.2.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/datepicker/datepicker3.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/datatables/dataTables.bootstrap.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.theme.default.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/select2/select2.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/colorpicker/bootstrap-colorpicker.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap-markdown/css/bootstrap-markdown.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/adminLTE/css/AdminLTE.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/adminLTE/css/skins/_all-skins.min.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/css/style.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.skinNice.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap-slider/slider.css">
- <link rel="stylesheet"
- href="${pageContext.request.contextPath}/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.css">
- head>
-
- <body class="hold-transition skin-purple sidebar-mini">
-
- <div class="wrapper">
-
-
- <jsp:include page="header.jsp">jsp:include>
-
-
- <jsp:include page="aside.jsp">jsp:include>
-
-
-
- <div class="content-wrapper">
-
-
- <section class="content-header">
- <h1>
- 角色管理 <small>添加权限表单small>
- h1>
- <ol class="breadcrumb">
- <li><a href="${pageContext.request.contextPath}/index.jsp"><i
- class="fa fa-dashboard">i> 首页a>li>
- <li><a
- href="${pageContext.request.contextPath}/role/findAll.do">角色管理a>li>
- <li class="active">添加权限表单li>
- ol>
- section>
-
-
- <form
- action="${pageContext.request.contextPath}/role/addPermissionToRole.do"
- method="post">
-
- <section class="content">
-
- <input type="hidden" name="roleId" value="${role.id}">
-
- <table id="dataList"
- class="table table-bordered table-striped table-hover dataTable">
- <thead>
- <tr>
- <th class="" style="padding-right: 0px">
- <input id="selall"
- type="checkbox" class="icheckbox_square-blue">th>
- <th class="sorting_asc">IDth>
- <th class="sorting">权限名称th>
- <th class="sorting">权限URLth>
- tr>
- thead>
- <tbody>
- <c:forEach items="${permissionList}" var="permission">
- <tr>
- <td>
-
- <input name="ids" type="checkbox" value="${permission.id}">
-
- td>
- <td>${permission.id}td>
- <td>${permission.permissionName }td>
- <td>${permission.url}td>
-
- tr>
- c:forEach>
- tbody>
-
- table>
-
- <div class="box-tools text-center">
- <button type="submit" class="btn bg-maroon">保存button>
- <button type="button" class="btn bg-default"
- onclick="history.back(-1);">返回button>
- div>
- section>
-
- form>
- div>
-
-
-
- <footer class="main-footer">
- <div class="pull-right hidden-xs">
- <b>Versionb> 1.0.8
- div>
- <strong>Copyright © 2014-2017 <a
- href="http://www.itcast.cn">研究院研发部a>.
- strong> All rights reserved. footer>
-
-
- div>
-
-
- <script
- src="${pageContext.request.contextPath}/plugins/jQuery/jquery-2.2.3.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/jQueryUI/jquery-ui.min.js">script>
- <script>
- $.widget.bridge('uibutton', $.ui.button);
- script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap/js/bootstrap.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/raphael/raphael-min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/morris/morris.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/sparkline/jquery.sparkline.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-world-mill-en.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/knob/jquery.knob.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/daterangepicker/moment.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.zh-CN.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/datepicker/bootstrap-datepicker.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/datepicker/locales/bootstrap-datepicker.zh-CN.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/slimScroll/jquery.slimscroll.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/fastclick/fastclick.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/iCheck/icheck.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/adminLTE/js/app.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/select2/select2.full.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/colorpicker/bootstrap-colorpicker.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap-wysihtml5.zh-CN.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/bootstrap-markdown.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-markdown/locale/bootstrap-markdown.zh.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/markdown.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/to-markdown.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/ckeditor/ckeditor.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.date.extensions.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.extensions.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/datatables/jquery.dataTables.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/datatables/dataTables.bootstrap.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/chartjs/Chart.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/flot/jquery.flot.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/flot/jquery.flot.resize.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/flot/jquery.flot.pie.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/flot/jquery.flot.categories.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.min.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-slider/bootstrap-slider.js">script>
- <script
- src="${pageContext.request.contextPath}/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js">script>
-
- <script>
- $(document).ready(function() {
- // 选择框
- $(".select2").select2();
-
- // WYSIHTML5编辑器
- $(".textarea").wysihtml5({
- locale : 'zh-CN'
- });
- // 全选操作
- $("#selall").click(function() {
- var clicks = $(this).is(':checked');
- if (!clicks) {
- $("#dataList td input[type='checkbox']").iCheck("uncheck");
- } else {
- $("#dataList td input[type='checkbox']").iCheck("check");
- }
- $(this).data("clicks", !clicks);
- });
- });
-
- // 设置激活菜单
- function setSidebarActive(tagUri) {
- var liObj = $("#" + tagUri);
- if (liObj.length > 0) {
- liObj.parent().parent().addClass("active");
- liObj.addClass("active");
- }
- }
- script>
-
-
- body>
-
- html>
- @RequestMapping("/findRoleByIdAndAllPermission.do")
- public ModelAndView findRoleByIdAndAllPermission(@RequestParam(name = "id", required
- = true) Long roleid)
- throws Exception {
- ModelAndView mv = new ModelAndView();
- Role role = roleService.findById(roleid);
- mv.addObject("role", role);
- List
permissionList = - permissionService.findOtherPermission(roleid);
- mv.addObject("permissionList", permissionList);
- mv.setViewName("role-permission-add");
- return mv;
- }
- @RequestMapping("/addPermissionToRole.do")
- public String addPermissionToRole(@RequestParam(name = "roleId") Long roleId,
- @RequestParam(name = "ids") Long[] permissionIds) throws Exception {
- roleService.addPermissionToRole(roleId, permissionIds);
- return "redirect:findAll.do";
- }
- @Select("select * from permission where id not in (select permissionId from role_permission
- where roleId=#{roleId})")
- public List<Permission> findOtherPermission(Long roleid);
- @Insert("insert into role_permission (roleId,permissionId) value (#{roleId},#
- {permissionId})")
- public void addPermissionToRole(@Param("roleId") Long roleId, @Param("permissionId") Long
- permissionId);
示例:@RolesAllowed({"USER", "ADMIN"}) 该方法只要具有 "USER", "ADMIN" 任意一种权限就可以访问。这里可以省略前缀ROLE_ ,实际的权限可能是 ROLE_ADMIN
示例:@PreAuthorize("#userId == authentication.principal.userId or hasAuthority(‘ADMIN’)")void changePassword(@P("userId") long userId ){ }这里表示在 changePassword 方法执行之前,判断方法参数 userId 的值是否等于 principal 中保存的当前用户的userId ,或者当前用户是否具有 ROLE_ADMIN 权限,两种符合其一,就可以访问该方法。
@PostAuthorize 允许方法调用,但是如果表达式计算结果为false,将抛出一个安全性异常
示例:@PostAuthorizeUser getUser("returnObject.userId == authentication.principal.userId orhasPermission(returnObject, 'ADMIN')");
示例:@Secured("IS_AUTHENTICATED_ANONYMOUSLY")public Account readAccount(Long id);@Secured("ROLE_TELLER")
- <dependency>
- <groupId>org.springframework.securitygroupId>
- <artifactId>spring-security-taglibsartifactId>
- <version>versionversion>
- dependency>
<%@taglib uri="http://www.springframework.org/security/tags" prefix="security"%>
<security:authentication property="" htmlEscape="" scope="" var=""/>
<security:authorize access="" method="" url="" var="">security:authorize>
<security:accesscontrollist hasPermission="" domainObject="" var="">security:accesscontrollist>