自定义jsp标签治理按钮权限

自定义jsp标签管理按钮权限1:自定入jsp标签,放入WEB-INF下,标签名为:buttonPower.tld?xml version1.0

自定义jsp标签管理按钮权限
1:自定入jsp标签,放入WEB-INF下,标签名为:buttonPower.tld
  
   <?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>buttonPower core library</description>
<display-name>buttonPower core</display-name>
<tlib-version>1.1</tlib-version>
<short-name>centfor</short-name>
<uri>http://www.asia-home.com.cn/buttonPower</uri>
<tag>
<description>按钮参数</description>
<name>buttonList</name>
<tag-class>com.asia.home.cn.web.tag.power.ButtonTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<name>bindPowerName</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>



2:ButtonTag 标签类
   package com.asia.home.cn.web.tag.power;

import java.util.List;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;

import org.apache.log4j.Logger;
import org.springframework.context.ApplicationContext;

import com.asia.home.cn.base.BaseEnvironment;
import com.asia.home.cn.buttonManage.ButtonManage;
import com.asia.home.cn.services.buttonManage.IButtonManageService;

public class ButtonTag extends TagSupport {

    private static final long serialVersionUID = 1L;
    private IButtonManageService buttonService;
    Logger InfoLogger = Logger.getLogger("loginfo");
    private String bindPowerName;
   
    protected void init() {
        if(buttonService == null){
            ApplicationContext applicationContext = BaseEnvironment.getApplicationContext();
            buttonService = (IButtonManageService) applicationContext.getBean("buttonService");
        }
    }
    @Override
    public int doStartTag() throws JspException {
        init();
        try {
            String fsRightId = queryUserButtonPower(bindPowerName);
            ButtonManage buttonParam = null;
            if(fsRightId!=null){
                buttonParam = buttonService.queryButtonByPowerId(fsRightId);
            }
            if (buttonParam==null) {
                pageContext.getRequest().setAttribute("flag", 0);
                return EVAL_BODY_INCLUDE;
            }
            pageContext.getRequest().setAttribute("buttonParam", buttonParam);
        } catch (Exception e) {
            InfoLogger.info("ActionTag:" + e);
            pageContext.getRequest().setAttribute("flag", 0);
            return SKIP_BODY;
        }
        return EVAL_BODY_INCLUDE;
    }

    public String queryUserButtonPower(String bindPowerName){
        List<Object[]> array = (List<Object[]>)pageContext.getSession().getAttribute("rightArray");
        String powerId = null;
        for(int i=0;i< array.size();i++){
            Object[] temp = array.get(i);
            //假如用户权限中父节点为“按纽管理”ID,则加按钮管理查询权限
            if("8a80807a-3b72-e40f-013b-7364c2150804".equals(temp[2])&&bindPowerName.equals(temp[1])){
                powerId = temp[0].toString();
            }
        }
         return powerId;
    }
   
    @Override
    public int doAfterBody() throws JspException {
        return super.doAfterBody();
    }
    public String getBindPowerName() {
        return bindPowerName;
    }
    public void setBindPowerName(String bindPowerName) {
        this.bindPowerName = bindPowerName;
    }
   
}



3:标签的使用。jsp页面
  <%@ page language="java" import="java.net.URLDecoder" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="buttonPower" uri="http://www.asia-home.com.cn/buttonPower"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<base href="<%=basePath%>"/>
<title>按钮权限使用方法</title>
<script type="text/javascript" src="skin/js/jquery.min.js"></script>
<script type="text/javascript" src="skin/js/oa_month.js"></script>
<LINK href="skin/css/oa.css" type=text/css rel=stylesheet></LINK>
<script type="text/javascript">

function del(){
  alert("tt");
}
</script>
</head>
<body>
<div style=" height:100%">
<div id="add_role">
<div id="box_content">
<div id="box-title"><h2>按钮权限使用方法</h2></div>
<table width="500" height="180"   border="0" style="border-collapse:collapse; ">
    <tr>
    <td colspan="3">&nbsp;&nbsp;&nbsp;
<buttonPower:buttonList bindPowerName ="test页面按钮">
<c:if test ="${flag!=0}">
<input type="button" id="test" onclick="${buttonParam.onclickMethod}" value="${buttonParam.buttonName}"></input>
</c:if>
</buttonPower:buttonList>
      </td>
    </tr>
</table>
</div>
</div>
<div id="clear"></div>
</div>


</body>
</html>