通过自定义标签,实现 页面 按钮显示控制
2017-04-11 09:07
489 查看
通过自定义标签,实现 页面 按钮显示控制
正在实现,做完后补充博客
代码已经实现,具体代码见github webtgate登录系统 :https://github.com/Wenhaoran/webgate
代码运行后的,功能管理 菜单,即通过使用 自定义标签,来控制按钮的显示与否。、
1、param.properties 中,button.limit=limit:false 或者 button.limit=limit:true ,来控制,是否启用 自定义按钮标签。
2、在系统中,对需要 配置自定义按钮 页面 ,关联到对应的 菜单上。
3、增加自定义按钮标签 代码。
代码结构如图下:
代码结构:
其中箭头所指,分别为,
1、标签 tld 的类文件。
2、页面实现代码的工具类。
3、标签tld文件,
4、右侧,代码具体在jsp 中的配置。
原理:
第一步 的原理 ,Util 类 Param ,会获取所有的.properties 配置。
第二步 的原理 在系统的 资源信息菜单中,会 对 当前资源,配置页面。
需要在 菜单资源下,配置页面的原因是, 所有的菜单资源显示与否,都 与角色有关,调用菜单页面的方法,会被filter PermissionFilter 拦截,拦截之后,会判断(PermissionFilter:154行),当前 菜单下,是否已经配置页面,如果配置过页面,说明,这个资源下,有自定义标签。
在 账户信息 菜单中,配置 一个路径+jsp名称为 : /views/sys/account/list.jsp 的页面,就是说,这个 list.jsp ,里面会有 自定义标签。
之后,在 功能管理中,会对 这个页面进行管理控制,
可以看见,有个 功能路径 ,这个功能路径, 等于 页面路径 + 功能编码。
然后,当在jsp 中配置 自定义标签完成,并在访问这个jsp 页面的时候,会 执行 ButtonTag.java ,会获取 当前页面的路径+按钮标签。
然后判断是否显示。
代码逻辑整体流程如下:
某角色 访问某菜单 --> Filter 拦截,判断当前角色,当前菜单,是否已经配置页面,是否配置按钮权限 ,并保存 权限信息 到map 中。 -->
打开某个 jsp 文件时 --> 加载 tld 实现类,并判断是否显示。
代码很久之前写的了,我自己也只是模糊记得大概是这样的流程。
如果有任何有关代码的疑问。欢迎 + Q骚扰 QQ:1286238812 备注:csdn自定义标签。
还有,github 上的代码,是比较旧的了,目前打算重构 webgate 项目,所以没有上传比较新的代码,重构完成后,会上传新的代码替换,所以,如果看见ui 有不一样的,不用管,只看代码实现就可以了。
正在实现,做完后补充博客
代码已经实现,具体代码见github webtgate登录系统 :https://github.com/Wenhaoran/webgate
代码运行后的,功能管理 菜单,即通过使用 自定义标签,来控制按钮的显示与否。、
1、param.properties 中,button.limit=limit:false 或者 button.limit=limit:true ,来控制,是否启用 自定义按钮标签。
2、在系统中,对需要 配置自定义按钮 页面 ,关联到对应的 菜单上。
3、增加自定义按钮标签 代码。
代码结构如图下:
代码结构:
其中箭头所指,分别为,
1、标签 tld 的类文件。
2、页面实现代码的工具类。
3、标签tld文件,
4、右侧,代码具体在jsp 中的配置。
原理:
第一步 的原理 ,Util 类 Param ,会获取所有的.properties 配置。
第二步 的原理 在系统的 资源信息菜单中,会 对 当前资源,配置页面。
需要在 菜单资源下,配置页面的原因是, 所有的菜单资源显示与否,都 与角色有关,调用菜单页面的方法,会被filter PermissionFilter 拦截,拦截之后,会判断(PermissionFilter:154行),当前 菜单下,是否已经配置页面,如果配置过页面,说明,这个资源下,有自定义标签。
在 账户信息 菜单中,配置 一个路径+jsp名称为 : /views/sys/account/list.jsp 的页面,就是说,这个 list.jsp ,里面会有 自定义标签。
之后,在 功能管理中,会对 这个页面进行管理控制,
可以看见,有个 功能路径 ,这个功能路径, 等于 页面路径 + 功能编码。
然后,当在jsp 中配置 自定义标签完成,并在访问这个jsp 页面的时候,会 执行 ButtonTag.java ,会获取 当前页面的路径+按钮标签。
然后判断是否显示。
代码逻辑整体流程如下:
某角色 访问某菜单 --> Filter 拦截,判断当前角色,当前菜单,是否已经配置页面,是否配置按钮权限 ,并保存 权限信息 到map 中。 -->
打开某个 jsp 文件时 --> 加载 tld 实现类,并判断是否显示。
代码很久之前写的了,我自己也只是模糊记得大概是这样的流程。
如果有任何有关代码的疑问。欢迎 + Q骚扰 QQ:1286238812 备注:csdn自定义标签。
还有,github 上的代码,是比较旧的了,目前打算重构 webgate 项目,所以没有上传比较新的代码,重构完成后,会上传新的代码替换,所以,如果看见ui 有不一样的,不用管,只看代码实现就可以了。
相关文章推荐
- 通过servlet.jsp.tagext.TagSupport的自定义标签实现按钮权限控制
- 当显示的页面内容太长时,需要省略号代替时,通过自定义标签来实现方法
- 通过继承Struts2标签,实现页面元素的显示权限控制
- Struts2通过自定义标签实现权限控制的方法
- 自定义jsp标签实现页面元素的权限控制
- Struts2自定义标签——通过自定义标签实现权限控制
- web JSP页面按钮权限控制(tld标签标签类实现BodyTagSupport)
- 在页面上通过“打印”按钮,打印div内容,实现标签的打印(含有条形码和二维码)。
- 动态的把数据显示在table中,点击某一行的删除按钮实现该行的删除(通过ajax实现页面的无刷新加载)
- 动态的把数据显示在table中,点击某一行的删除按钮实现该行的删除(通过ajax实现页面的无刷新加载)
- 用户在文本框中输入需要转换的十进制数,通过点击3个按钮在标签中显示结果。(点击一个实现一个)
- 在页面中,我们经常看到,一个button按钮,如果属标点击,就会触发一个窗口的显示,如果二次点击并可以隐藏,那么如何通过JAVA配合html来实现这一功能呢?
- 自定义标签,实现整个jsp页面异常捕获。
- android 让TextView支持的Html标签实现自定义时钟显示组件DigitalClock
- 实现自定义分页(如:改变传统datagrid的分页显示、通过A-Z的字母来分页等)、选择的check
- [原创]将数据绑定至页面的两个Textbox控件上,并且可以通过按钮实现分页
- 通过单选按钮来控制 table中得某一行要不要 显示出来
- 实现自定义分页(如:改变传统datagrid的分页显示、通过A-Z的字母来分页等)、选择的check
- DevExpress XtraGrid 动态自定义控制button按钮显示
- Asp.net页面中通过Js控制Silverlight显示值