原来的项目,实现的只是页面的权限管理!今天老大说要实现,功能的权限管理推荐我用JSP的自定义标签!找了一堆,终于找到了合适的资料。借鉴,并加以保存,虽然前后端分离以常被我们认知,但JSP任然可以用来做后端的数据管理页面。不管这么多复制粘贴,贴代码。
首先创建一个fns.tld--------存放目录为/WEB-INF/tlds/fns.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>p2p permission taglib</description>
<display-name>permission taglib</display-name>
<tlib-version>1.0</tlib-version>
<short-name>p2p_admin</short-name>
<uri>http://vanfon.p2p.cn/</uri>
<tag>
<name>permission</name><!-- 里面的内容是JSP文件中标签里面的<p2p:permission >permission -->
<tag-class>com.qos.app.view.action.toBeInstalled.tags.HasUrlPermissionTag</tag-class><!-- JSP文件中的自定义标签里面的值会传到PermissionTag类接受,PermissionTag类接受到的值决定是否要显示JSP文件中自定义标签的内容。 -->
<body-content>JSP</body-content><!-- 里面的值代表<p2p:permission>只不能用在JSP中。 -->
</tag>
</taglib>
然后是,JAVA实现类的代码
package com.qos.app.view.action.toBeInstalled.tags;
import javax.servlet.jsp.tagext.TagSupport;
public class HasUrlPermissionTag extends TagSupport{
private static final long serialVersionUID = 4592227792811389132L;
@Override
public int doStartTag() {
boolean result = true;
return result? EVAL_BODY_INCLUDE : SKIP_BODY;//EVAL_BODY_INCLUDE代表执行自定义标签中的内容,SKIP_BODY代表不执行自定义标签中的内容。
}
}
我只写了一个简单逻辑,以便大家好 知道起原理!注意该CLASS文件路径与fns.tld中的tag-class对应
HttpServletRequest request = (HttpServletRequest) this.pageContext
.getRequest();
拿到HTTPrequest代码也贴出来把!
接下来就是JSP部分,首先JSP前面进行引入
<%@ taglib prefix="p2p" uri="/WEB-INF/tlds/fns.tld" %>
还有一种是在xml中引用,但是我觉得xml中引用会引起其他问题,所以直接在JSP引用是最好的!
下面贴的是显示代码!注意p2p对应JSP引入处的prefix,permission对应fns.tld中的name值
<p2p:permission ><a href="#" class="easyui-linkbutton" iconCls="icon-add" >新增</a></p2p:permission>
参考:https://blog.csdn.net/zwx19921215/article/details/43560799