【Java EE 学习 76 上】【数据采集系统第八天】【角色授权】【用户授权】【权限的粗粒度控制】【权限的细粒度控制】
2015-12-19 11:11
701 查看
一、角色管理
单击导航栏上的"角色管理"超链接,跳转到角色管理界面,在该界面上显示所有角色,并提供角色的增加和删除、修改超链接。1.增加新角色(角色授权)
流程:单击增加新角色超链接->Action查询出所有的权限保存到值栈并转到添加新角色页面->填写表单并提交->Action保存表单->重定向到角色管理Action技术点:表单提交的权限列表时一个整型数组,需要在Action中进行接收并调用相关方法转换成Rright列表;使用到了一些JQuery技术实现更友好的前端交互。
/* * $Id: SubmitTag.java 681101 2008-07-30 16:06:15Z musachy $ * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * * 该类对应着<s:submit>标签,重写该类实现对权限细粒度的划分 */ package org.apache.struts2.views.jsp.ui; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.Tag; import org.apache.struts2.components.Component; import org.apache.struts2.components.Submit; import com.kdyzm.utils.ValidateUtils; import com.opensymphony.xwork2.util.ValueStack; /** * @see Submit */ public class SubmitTag extends AbstractClosingTag { private static final long serialVersionUID = 2179281109958301343L; protected String action; protected String method; protected String align; protected String type; protected String src; public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) { return new Submit(stack, req, res); } protected void populateParams() { super.populateParams(); Submit submit = ((Submit) component); submit.setAction(action); submit.setMethod(method); submit.setAlign(align); submit.setType(type); submit.setSrc(src); } public void setAction(String action) { this.action = action; } public void setMethod(String method) { this.method = method; } public void setAlign(String align) { this.align = align; } public String getType() { return type; } public void setType(String type) { this.type = type; } public void setSrc(String src) { this.src = src; } //Submit标签需要重写两个方法才行 @Override public int doStartTag() throws JspException { boolean result=ValidateUtils.hasRight(getFormNamespace(), getFormActionName(), (HttpServletRequest)pageContext.getRequest(), null); if(result==false){ return SKIP_BODY; }else{ return super.doStartTag(); } } @Override public int doEndTag() throws JspException { // System.out.println("表单标签:"+getFormNamespace()+getFormActionName()); boolean result=ValidateUtils.hasRight(getFormNamespace(), getFormActionName(), (HttpServletRequest)pageContext.getRequest(), null); if(result==false){ return SKIP_BODY; }else{ return super.doEndTag(); } } public String getFormNamespace(){ Tag tag=this.getParent(); while(tag!=null){ if(tag instanceof FormTag){ FormTag formTag=(FormTag) tag; String namespace=formTag.namespace; if(namespace==null||"/".equals(namespace)){ namespace=""; } return namespace; }else{ tag=tag.getParent(); } } return ""; } public String getFormActionName(){ Tag tag=this.getParent(); while(tag!=null){ if(tag instanceof FormTag){ FormTag formTag=(FormTag) tag; String actionName=formTag.action; if(actionName!=null&&actionName.endsWith(".action")){ actionName=actionName.substring(0, actionName.indexOf(".")); return actionName; }else{ actionName=""; return actionName; } }else{ tag=tag.getParent(); } } return ""; } }
org.apache.struts2.views.jsp.ui.SubmitTag.java
相关文章推荐
- Javaweb项目不用重启加载properties文件的方法(根据时间戳来判断)
- java线程并发控制:ReentrantLock Condition使用详解
- Java RMI学习
- javabean和json的常用转换解析
- Java编程思想笔记02:组合与继承、final、策略设计模式与适配器模式、内部类、序列化控制(注意事项)
- maven的学习之路——intellij的maven1.5JDK问题
- java中构造函数的特点
- Java算法分析1—————寻找数组同样元素
- Struts2之异常处理
- Java变量类型,实例变量 与局部变量 静态变量
- java线程(生产者/消费者)
- ubuntu14.04安装jdk
- Struts2概述及与Struts1的对比
- Struts2概述及与Struts1的对比
- 深入理解Java:注解(Annotation)自定义注解入门
- Java输出xml文件——DOM法写入《Dota…
- Java读取xml文件——DOM解析《Dota2…
- 【Java EE 学习 75 下】【数据采集系统第七天】【二进制运算实现权限管理】【使用反射初始化权限表】【权限捕获拦截器动态添加权限】
- 菜鸟猿大战Java之集合框架系列(二)
- spring mvc拦截器