jstl 自定义标签来写IO流数据
来源:互联网 发布:兄弟连it教育论坛 编辑:程序博客网 时间:2024/06/08 08:35
首先,一定要在WEB-INF文件夹下创建一个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"> <!-- 上面的代码不用动,下面的代码是关于标签的描述。关注short-name,他是标签显示的名称,即prefix --> <!-- uri可以随便写,反正就是jar包中对应的代码,只要不重名就行 --> <description>my 1.1 core library</description> <display-name>my core</display-name> <tlib-version>1.1</tlib-version> <short-name>my</short-name> <uri>http://www.luke.com/my/core</uri> <!-- 下面就是注册tag,tag-class是执行java代码的类的路径 ,body-content是是否为自结束标签,比如img attribute是是否有参数,required是指是否为必须,rtexprvalue是运行时是否可以获取表达式的值, 一般为true--> <tag> <name>helloTag</name> <tag-class>com.anseon.day10.HelloTag</tag-class> <body-content>empty</body-content> <attribute> <name>src</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag></taglib>以上是自定义标签的部分代码
然后是写执行的Java代码
public class HelloTag extends SimpleTagSupport {private String src;public void setSrc(String src) {this.src = src;}@Overridepublic void doTag() throws JspException, IOException {PageContext context = (PageContext) getJspContext();InputStream in = context.getServletContext().getResourceAsStream(src);BufferedReader bufw = new BufferedReader(new InputStreamReader(in));String str = null;while((str = bufw.readLine())!=null){context.getOut().print(str+"<br>");}bufw.close();}}注意,如果标签有属性,因为用了反射,所以一定要声明属性的参数,即上面代码的src,然后一定要有setSrc的方法,这样才能通过反射将标签里面的值赋值过来
自定义标签可以继承SimpleTagSupport,或者可以实现SimpleTag接口,一般用继承的,此时关注getJspContext()方法和getJspBody().invoke(null)方法,前者是获取上下文对象的,后者的invoke方法,如果是null就会直接输出到浏览器,否者输出到参数里面
阅读全文
0 0
- jstl 自定义标签来写IO流数据
- jstl自定义标签(如何写一个自定义标签)
- JSTL自定义标签问题
- 自定义jstl标签库
- JSTL - 自定义标签
- JSTL自定义标签
- jstl自定义标签
- JSTL自定义标签
- JSTL自定义标签
- JSTL自定义标签
- 自定义JSTL标签
- JSTL自定义标签
- JSTL 自定义标签
- jstl自定义标签
- 自定义jstl标签库
- 自定义JSTL标签
- jstl自定义标签
- jstl之自定义标签
- 浅谈Web及网络基础
- 常用排序算法总结(一)
- 机器学习之支持向量机(Support Vector Machine)(更新中...)
- dubbo-admin-2.5.3.war管控台运行jdk1.8报错Invalid property 'URIType' of bean class
- 识别MNIST数据集:用Python实现神经网络
- jstl 自定义标签来写IO流数据
- Linux 如何添加一个 Swap 文件
- 常用排序算法总结(二)
- Educational Codeforces Round 27 C. Two TVs(模拟)
- 文章为原创,转载请注明出处,欢迎评论。
- 第一行代码 第九章 网络技术
- 数据库简单介绍
- 跳动的心
- [51Nod 1110 距离之和最小 V3]三分