最近一直在做权限控制模块,在网上找了不少的资料,发现基本上都是用自定义标签来控制页面显示的,有点不理解的是:URL跳转已经用拦截器实现了。页面中只用控制按钮的输出(显示)或不输出
用JSTL的/c:when或就够用了~而且相当简单,为什么要用自定义标签那么麻烦呢,期望各位大神不吝赐教~
用JSTL的/c:when或
JSTL的这个控制会比较麻烦的,比如你现在页面上有很多的按钮,你每个都要加一个
则这样的页面会很混乱,前面你的这个判断的条件的,数据你还要在页面上输出
但是如果我将这个按钮封装成标签,这个里面自带权限控制,我在这个标签里面根据上下文获取当前用户的信息,然后比较此用户是否有这个按钮的权限,如果没有则不显示
这个按扭封装好后,开发人员按着正常的使用这个按钮就可以了,至于权限控制则于后台的权限处理组件统一处理,这样可以提高很多开发效率
封装的目的就是将常用的,重复的内容提取出来以达到重要的目的,提高生产效率
用JSTL 跟自定义标签的效果是一样的,用自定义标签可能是为了加入一些个性化的功能;
最适用的就是最好的,所以在功能上只要能够简单的实现,是不需要规定非得用哪个的,我想你公司写这个标签的人也是这样的观点的;
首先你和那个人的做法都是对的,没有谁是错的。
举个例子,一个业务逻辑分为四种情况A、B、C、D。 如果你用程序控制那是:
[code="java"]
if(isA)
{
//A
}
else if (isB){
//B
}
//...
[/code]
如果把整块放入你的代码中,你的代码中将会是很凌乱的,以后别人维护肯定觉得你的代码不好。
如果以上的代码用一个命令模式来做得快,那就变得很好。
对于你的问题,做成自定义标签,[color=red]这是一个封装[/color], 也许它里面实现的机制就可以用
封装的意义在于,这个逻辑块单独的独立出来了,下次在别处用可以直接使用,如果你写在代码中,试问移植容易吗?
还有封装的意义还在于代码的整洁度,可维护性,在封装内部 这是高内聚,对外部来说是低耦合的。所以维护这一块只要对这一块代码了解,而不需要去找外部代码。