`
yangsj19870829
  • 浏览: 42336 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

根据用户权限使用自定义标签控制链接、按钮是否显示

 
阅读更多

                             基于项目中前台页面需要根据当前用户的权限来决定是否显示超链接、按钮等

 

第一步:首先必须有自定义标签handler,用于在JSP引擎解析自定义标签用的。

package com.yangsj.tag;

 

import javax.servlet.http.HttpSession;

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.tagext.TagSupport;

 

public class RightControlTag extends TagSupport 

{

/**

*/

private static final long serialVersionUID = -5847648182347653121L;

 

private boolean validate = true;

 

@Override

public int doStartTag() throws JspException

{

if (!this.validate)

{

return TagSupport.SKIP_BODY;

}

else

{

//这里进行鉴权     JSP引擎是否解析标签体的内容

HttpSession session = super.pageContext.getSession();

 

// if (鉴权成功)

// {

// return TagSupport.EVAL_BODY_INCLUDE;

// }

// else

// {

// return TagSupport.SKIP_BODY;

// }

 

String sessionId = session.getId();

System.out.println(sessionId);

 

return TagSupport.EVAL_BODY_INCLUDE;

}

}

 

public boolean isValidate()

{

return validate;

}

 

public void setValidate(boolean validate)

{

this.validate = validate;

}

}

 

第二步:在WEB-INF目录下添加名为rightcotrol.tld的tld文件。tld文件用于描述页面自定义标签对应的handler,标签属性等等。

<?xml version="1.0" encoding="UTF-8" ?>

 

<taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"

version="2.1">

 

<description>*** right control library</description>

<display-name>test</display-name>

<tlib-version>1.1</tlib-version>

<short-name>test</short-name>

<uri>http://yangsj.com/jsp/jctl/rightcontrol</uri>

 

<tag>

<description>

The right control tag is used to determines tag body whether interpreted or not.

    </description>

<name>rightcontrol</name>

<tag-class>com.yangsj.tag.RightControlTag</tag-class>

<body-content>JSP</body-content>

 

<attribute>

<description>

The validate that determines whether or not the body content should be processed or shown.

        </description>

<name>validate</name>

<required>false</required>

<rtexprvalue>true</rtexprvalue>

<type>boolean</type>

</attribute>

</tag>

</taglib>

 

以上两步完成后,就可以在页面中使用自定义的权限标签了。

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="test" uri="http://yangsj.com/jsp/jctl/rightcontrol" %>
 
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script src="<%=basePath%>/resources/jquery-1.7.1.js"></script>
 
<script type="text/javascript">
$(document).ready(function () {
var content = '<test:rightcontrol validate="false">123456</test:rightcontrol>';
 
$("#jstltest").append(content);
});
</script>
  </head>
  
  <body>
    This is my JSP page. <br>
    
    <div id="jstltest">
    123 <br />
    </div>
 
  </body>
</html>
 

 

 

分享到:
评论

相关推荐

    一款二级菜单和使用自定义标签实现简单权限控制

    在描述中提到的"博文链接:https://cuisuqiang.iteye.com/blog/1480948"(由于实际无法访问,以下内容是基于一般实践的推测),作者可能分享了如何结合后台数据动态生成二级菜单,以及如何根据用户角色和权限动态...

    JEECG 权限开发手册V3.7

    - **实现**:根据用户的角色和权限标识动态决定是否显示手机号字段。 **3.5.3 采用方式,金额字段禁用权限配置** - **配置说明**:配置 `disableAmount` 权限标识。 - **实现**:根据权限标识动态决定是否禁用金额...

    Java基本的权限设计

    它们可以根据用户的权限动态地决定哪些元素(如按钮、链接等)应该显示或隐藏。例如,如果用户没有访问某个功能的权限,那么相应的界面元素将不会在页面上呈现。在JSP中,自定义标签通常通过TLD(Tag Library ...

    yii2.0之GridView自定义按钮和链接用法

    本示例的运行效果展示了如何将自定义的按钮和链接与标准的GridView结合使用,使得开发者能够在表格中轻松地添加个性化的用户交互功能。这对于基于Yii框架的PHP程序设计具有很大的帮助,尤其是在需要对表格数据执行...

    尚硅谷Shiro 标签

    使用Shiro标签可以很直观地在JSP页面上控制显示内容,如根据用户是否登录、是否有特定权限来显示页面上的按钮或链接。 在使用Shiro标签之前,需要在JSP页面中导入Shiro的标签库。导入的代码如下: ***" %&gt; Shiro...

    struts实现的权限分配

    例如,只有管理员才能看到的按钮或链接,可以使用JSTL的`&lt;c:if&gt;`或Spring Security的`&lt;sec:authorize&gt;`标签来控制显示。 6. **国际化和错误处理**:为了提供良好的用户体验,错误消息和提示应该支持多语言。Struts...

    hibernate-struts2-spring集成用户权限认证

    5. **自定义权限标签**:自定义权限标签允许在JSP页面上动态地显示或隐藏内容,基于用户的权限。例如,只有管理员才能看到某些管理链接或按钮。这通常通过扩展Struts2的标签库实现,使得视图层能与业务逻辑交互。 6...

    vue-admin-template添加权限控制.zip

    Vue Router允许在运行时动态添加或移除路由,这样可以根据用户的权限来决定显示哪些菜单和页面。 5. **组件级别的权限控制**:除了路由级别的权限,还可以在组件级别进行控制。例如,某些按钮或功能可能只对特定...

    ztree添加自定义控件

    同时,根据实际使用情况,不断优化代码,提高用户体验。 综上所述,`ZTree 3.1`添加自定义控件涉及前端的HTML/CSS/JavaScript技术,后端的数据库操作以及服务器接口设计。通过这样的扩展,我们可以将`ZTree`从一个...

    简单权限管理

    授权则可通过`&lt;location&gt;`标签、`[Authorize]`特性或自定义授权过滤器来实现,根据用户的角色或特定权限进行控制。 `PermSystem`可能是权限管理系统的主要代码库,可能包含用户、角色、权限的数据库模型,以及相关...

    java后台权限管理

    在权限管理中,前端通常会显示权限相关的按钮、链接或菜单,并根据用户的权限动态隐藏或显示。 在实际项目中,权限管理还包括角色(Role)的概念,角色是一组预定义的权限集合。用户被分配角色,而不是直接分配权限...

    supp标签的使用

    通过封装一系列自定义标签,`supp`不仅简化了开发流程,还增强了应用程序的性能与用户体验。本文将详细阐述`supp`中常用资源标签的名称及用法,帮助开发者快速掌握并高效运用。 #### 常用`supp`标签详解 ##### `...

    ckeditor4音频视频上传自定义插件

    在IT行业中,富文本编辑器CKEditor 4是一款广泛应用的在线文本编辑工具,它提供了丰富的功能,如格式化、图片上传、链接管理等。本文将深入探讨如何为CKEditor 4自定义音频和视频上传插件,以满足特定的媒体处理需求...

    jeecgUI标签文档

    其UI标签库是一套在JSP页面中使用的自定义标签集合,极大地简化了前端界面的开发工作。 1. BaseTag(样式表和JS引入标签) BaseTag标签用于引入JEECG开发平台需要的CSS样式表和JavaScript文件,是构建UI界面的基础...

    asp.net core mvc权限控制:在视图中控制操作权限

    然而,有时我们还需要在视图中根据用户的权限动态地显示或隐藏UI元素,如按钮、链接等。以下是如何在视图中实现这一功能的方法: 1. 直接在视图中进行权限判断 可以使用`HttpContext.User.HasClaim()`方法来检查...

    Struts_2_标签库(文档手册)_Tags-API-CLSW-JSP

    用于条件判断,类似于Java中的if-else语句,可以根据表达式的真假决定是否渲染后续的标签内容。 #### `&lt;s:fielderror&gt;` 标签 显示表单字段的验证错误信息,有助于用户快速定位并修正错误。 #### `&lt;s:file&gt;` 标签 ...

    隐藏SharePoint文档库 上载按钮

    总的来说,这个过程展示了如何利用SharePoint的内容编辑器Web部件结合JavaScript来定制用户界面,尤其是针对文档库操作的权限控制。通过这种方法,我们可以根据业务需求灵活地调整SharePoint页面的显示内容和功能。

    ASP.NET对HTML页面元素进行权限控制(二)

    这通常涉及到识别哪些元素需要根据用户的权限来显示或隐藏。在案例中,作者遇到困难,因为HTML元素众多且具有层级关系。最初的尝试是使用`&lt;div&gt;`标签来标识这些元素,但这种方法可能导致样式改变,需要大量调整。为...

    网络游戏-即时通信中进行网络链接收藏的方法、客户端及系统.zip

    3. 存储管理:链接被存储在本地数据库或云端,可能伴随有用户自定义的标签和描述,便于分类和检索。 4. 搜索与展示:用户可以搜索收藏夹中的链接,或者通过预设的类别浏览。 客户端方面,无论是网络游戏客户端还是...

    自己用的IFIX图符

    使用者可以根据自己的需求选择合适的图符,自定义HMI界面,使得操作人员能够更清晰地了解和操作工业过程。 在IFIX中,图符不仅仅是视觉元素,它们还承载着逻辑功能。例如,一个按钮图符可能关联着一个启动或停止...

Global site tag (gtag.js) - Google Analytics