修改<s:a>标签所对应的源码

让页面调用的这个标签不是struts2的,而是自己抄系统的。同包同名的标签。

直接点击会进入对应的tld文件。

或者从jar包里面找tld文件的方式。

找到tld文件没用,关键是要改对应的java源码。

ctrl+shift+t找到对应的源码。

找到源码

新建一个和源码一样的包名和类名

这样子classpath下面就会有完全相同的两个类,最后系统调用哪个类就要看谁先被加载,因为class字节码只加载一次,所以谁先加载后就固定不变了。所以先找到谁就用谁。而classpath下面是优先加载代码,找不到了才去lib下找jar包看看有没有要的类,也就是说新建一个一样的类之后,系统就会自动用自己新建的这个。

类源码找不doEndTag这个类,那么就在父类,我新建的类要重写doEndTag来实现自己要的功能。

@Override
	public int doEndTag() throws JspException {
		// 获取当前登录的用户
		User user = (User) pageContext.getSession().getAttribute("user");
		if (user == null) {
			throw new RuntimeException("没有登录用户!");
		}

		// 获取所需要的权限URL(在action属性值中,但需要处理一下)
		String privUrl = "/" + action;

		// 根据权限决定是否显示超链接
		if (user.hasPrivilegeByUrl(privUrl)) {
			return super.doEndTag(); // 输出<a>标签,并继续执行此标签后面的JSP代码
		} else {
			return BodyTagSupport.EVAL_PAGE; // 没有输出<a>标签,继续执行此标签后面的JSP代码
		}
	}
时间: 2024-10-08 00:25:00

修改<s:a>标签所对应的源码的相关文章

修改Flume-NG的hdfs sink解析时间戳源码大幅提高写入性能

转自:http://www.cnblogs.com/lxf20061900/p/4014281.html Flume-NG中的hdfs sink的路径名(对应参数"hdfs.path",不允许为空)以及文件前缀(对应参数"hdfs.filePrefix")支持正则解析时间戳自动按时间创建目录及文件前缀. 在实际使用中发现Flume内置的基于正则的解析方式非常耗时,有非常大的提升空间.如果你不需要配置按时间戳解析时间,那这篇文章对你用处不大,hdfs sink对应的解

修改Flume-NG的hdfs sink解析时间戳源码部分大幅提高写入性能

Flume-NG中的hdfs sink的路径名(对应参数"hdfs.path",不允许为空)以及文件前缀(对应参数"hdfs.filePrefix")支持正则解析时间戳自动按时间创建目录及文件前缀. 在实际使用中发现Flume内置的基于正则的解析方式非常耗时,有非常大的提升空间.如果你不需要配置按时间戳解析时间,那这篇文章对你用处不大,hdfs sink对应的解析时间戳的代码位于org.apache.flume.sink.hdfs.HDFSEventSink的pro

【第六篇】Volley代码修改之图片二级缓存以及相关源码阅读(重现ImageLoader.ImageCache)

前面http://www.cnblogs.com/androidsuperman/p/8a157b18ede85caa61ca5bc04bba43d0.html 有讲到使用LRU来处理缓存的,但是只是处理内存里面的缓存,没进行文件缓存和处理,那么如何实现Volley在本地的缓存呢 一般硬盘缓存使用com.jakewharton.disklrucache.DiskLruCache这个Lru缓存,具体代码在 https://github.com/JakeWharton/DiskLruCache/tr

能够附加图片的标签控件iOS项目源码

这个源码案例是能够附加图片的标签控件,源码JTImageLabel,JTImageLabel能够附加图片的标签Label控件,图片可以随意更换.位置也能够很好的控制.效果图: <ignore_js_op> 使用方法: 支持CocoaPods: pod 'JTImageLabel', '~> 1.0' 用法相当简单,像普通Label那样使用: #import "JTImageLabel.h" @property (weak, nonatomic) IBOutlet JT

修改jumpserver源码并且实现一个自定义功能模块

在前面已经说了,如何打开jumpserver的管理控制台并且自定义自己的数据模型.接下来实现一个自定义的功能模块. 先看效果! 一 定义好自己的模型(model) 1.1 这一块儿在前一篇博文已经讲过了 二 定义好自己的app(这里注意 一定要自定义app,不要在源码上修改别人的app,因为jumperver的源码不是那么简单的..可能用各种问题) 2.1 python manage.py startapp XXX 通过以上步骤就可以建立自己的app 三  自定义URL 这块儿不难, 直接把我新

spark[源码]-sparkContext概述

h2 { color: #fff; background-color: #7CCD7C; padding: 3px; margin: 10px 0px } h3 { color: #fff; background-color: #008eb7; padding: 3px; margin: 10px 0px } SparkContext概述 sparkContext是所有的spark应用程序的发动机引擎,就是说你想要运行spark程序就必须创建一个,不然就没的玩了.sparkContext负责初始

9款让你眼前一亮的HTML5/CSS3示例及源码

1.HTML5 3D点阵列波浪翻滚动画 今天我们要再分享一款基于HTML5 3D的点阵列波浪翻滚动画特效,同样是非常的壮观. 在线演示 源码下载 2.HTML5小球弹跳动画 很不错的3D小球 今天我要向大家分享一款很逼真的HTML5动画特效,它是3个色彩各异的弹跳小球,每一个小球在弹跳的时候都会有变化的小球投影,让整个动画更加逼真,而且具有3D的视觉效果. 在线演示 源码下载 3.纯CSS3纸片层叠而成的庙宇动画 今天要分享的这款纯CSS3动画非常特别,动画主体的原型是一座庙宇的屋顶,它用3张纸

深入浅出 Spring Cache 使用与整合(附源码解析)

深入浅出 Spring Cache 使用与整合(附源码解析) 个人开发环境 java环境:Jdk1.8.0_60 编译器:IntelliJ IDEA 2019.1 springCache官方文档:https://docs.spring.io/spring/docs/5.1.9.RELEASE/spring-framework-reference/integration.html#cache 一.Spring缓存抽象 SpringCache产生的背景其实与Spring产生的背景有点类似.由于Jav

【PM】测试阶段源码和测试环境版本控制

 转载请注明出处:jiq?钦's technical Blog  针对企业信息化系统,个人经验认为在集成测试过程中需要避免测试环境被更改,两个原因: (1)若修改是错误的,将影响测试,甚至中断测试: (2)若修改是正确的,测试人员提出的bug就无法重现,测试人员的工作就会被怀疑. 而且你不能总保证修改是正确的吧. 同时源码也不能被修改,因为不能测试结束后,发现源码和测试环境的系统不一致了! 所以我们需要同时控制源码和测试环境的提交权限. (1)测试环境需要和外界完全断开,不能够将东西拷贝进去,测