传智播客-- 教育办公系统权限模块和其他模块的集成和 excel 数据上传和下载

通过前几天的准备,今天我们要讲spring-security框架和教育办公系统集成到一起.这个说起来容易,可是做不是那么容易.刚刚学习过,有很多 细节记不住.做起来很慢,总是出现错误.不过,在对错误的修正中慢慢的掌握了spring-security的使用和注意事项.

1. 集成登出
    1). 配置 spring-security
    pring-security 框架的过滤器
    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    2). 在 struts-menu 的导航中加入登出: 在 EMSNavigationMenuAction 中加入 buildLogoffMenu 方法.
    private void buildLogoffMenu(MenuComponent menuComponent, String contextPath){
        MenuComponent logoffMenuComponent = new MenuComponent();
        logoffMenuComponent.setTitle("登出");
        logoffMenuComponent.setLocation(contextPath + "/logout");
        logoffMenuComponent.setImage(contextPath + "/common/images/exit.png");
       
        menuComponent.addMenuComponent(logoffMenuComponent);
    }
   
    3). 在登出按钮上加 js: 需要使整个页面变为 index 页. 而非仅是 content 页面

2. 在新建用户时, 可以为用户分配角色
    1). 弹出所有角色供用户分配: 需要使用 jQuery 的 weebox 插件
    <security:authorize ifAnyGranted="ROLE_UPDATE, ROLE_DELETE">
                       
    </security:authorize>
    2). 为 employee-input.jsp 页面的 <a id="role_a_id" href="">分配角色(必选)</a> 添加  weebox 插件的事件:当点击时, 弹出所有的角色对应的一个多选框
    <c:forEach items="${requestScope.CN_ITCAST_EMS_ROLE_REQUEST_ALL}" var="role">
            <html:multibox property="roles" value="${role.id}" style="border:none"></html:multibox>${role.name }<br>
    </c:forEach>
    3). 在提交表单时, 把角色也保存到数据库中
  

3. 在修改用户时, 可以为用户修改角色: ajax 修改, 类似添加的实现  

4. 在显示员工详细信息时, 显示其所具有的权限
  
5. 使用 spring-security 包含页面: 根据权限来决定相关链接是否显示:
   1). 使用 security 标签
   <security:authorize ifAnyGranted="ROLE_EMPLOYEE_UPDATE, ROLE_EMPLOYEE_DELETE">
        <td>
            <security:authorize ifAllGranted="ROLE_EMPLOYEE_DELETE">
                <a href="${cp }/employee-delete.do?employeeId = ${emp.employeeid}" class="_delete">删除</a>
            </security:authorize>
            <security:authorize ifAllGranted="ROLE_EMPLOYEE_UPDATE">
                <a href='${cp }/employee-detail.do?employeeid=${emp.employeeid}&type=update'>修 改</a>
            </security:authorize>
        </td>
    </security:authorize>
   2). 在 js 中在 '' 中使用 security 标签
 
6. 首页登录失败时的提示信息.
    1). 使用 request.getAttributeNames 和 session.getAttributeNames 查看有哪些信息返回, 筛选出需要的键值
    2). 表单数据回显使用 value='${sessionScope.SPRING_SECURITY_LAST_USERNAME }', 因为 spring-security 在发生错误时,使用重定向机制而非转发,所以 ${param.j_username} 不好用.   
            
7. excel 数据上传和下载  
    1). 操作 Excel: POI
  
    2). 下载 Excel 文档:
        ①. 读取需要的数据
        ②. 生成 Workbook 对象
        ③. 由 Servlet API 进行下载操作.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值