`

自定义标签库读取文件

 
阅读更多
jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.cgmcc.com/jsp/readfile"  prefix="my3"%>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'tagreadfile.jsp' starting page</title>
   
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">   
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

  </head>
 
  <body>
       <my3:readFile file="/WEB-INF/tld/readfile.tld"/>
  </body>
</html>

java
package com.cgm.readFile;

import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;

import javax.servlet.jsp.JspContext;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.JspTag;
import javax.servlet.jsp.tagext.SimpleTag;

public class TagReadFile implements SimpleTag {
private String file;
private PageContext pageContext;

public String getFile() {
return file;
}

public void setFile(String file) {
this.file = file;
}

public void doTag() throws JspException, IOException {  //可以动态生成jsp啊..
    //处理逻辑
       //开始读文件.

System.out.println("-----------------"+file);

   InputStream  in= pageContext.getServletContext().getResourceAsStream(file);
Scanner scanner=new Scanner(in,"UTF-8");
while (scanner.hasNext()) {
String line=scanner.nextLine();

line=line.replace("<", "&lt");
line=line.replace(">", "&gt");

pageContext.getOut().print(line);
pageContext.getOut().println("</br>"); //换行

}


}

public JspTag getParent() {
// TODO Auto-generated method stub
return null;
}

public void setJspBody(JspFragment jspBody) {
}

public void setJspContext(JspContext pc) {
this.pageContext=(PageContext) pc;



}

public void setParent(JspTag parent) {

}

}



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">
   
    <tlib-version>1.3</tlib-version>
    <short-name>my3</short-name>
    <uri>http://www.cgmcc.com/jsp/readfile</uri>
    <tag>
       <name>readFile</name>
      
       <tag-class>com.cgm.readFile.TagReadFile</tag-class>
       <body-content>empty</body-content>
       <attribute>
         <name>file</name>
         <required>true</required>
         <rtexprvalue>true</rtexprvalue>
         <type>java.lang.String</type>
       </attribute>
      
   
   
    </tag>
   
  </taglib> 





分享到:
评论

相关推荐

    使用propertities配置文件的简单的自定义标签入门例子

    在Java Web开发中,属性...总结,通过以上步骤,我们可以创建一个简单的自定义标签,它能够读取properties配置文件的值并在JSP页面中使用。这增强了代码的灵活性,使得配置管理更加方便,同时也提高了代码的可维护性。

    jsp自定义标签学习

    自定义标签遵循 `&lt;Prefix:TagFileName&gt;` 的格式,其中`Prefix`是前缀,用于区分不同的标签库,`TagFileName`是标签的名字。例如,`&lt;w:HelloWorldTag&gt;` 就是一个使用前缀 `w` 的自定义标签。 **自定义标签的工作机制...

    自定义标签实现POI导出

    标题“自定义标签实现POI导出”表明我们即将探讨的是如何使用Apache POI库来创建自定义的Excel导出功能。Apache POI是Java语言中用于读写Microsoft Office格式文件(如Word、Excel)的一个开源库。在这个场景中,...

    jsp通过自定义标签库实现数据列表显示的方法

    标签库描述文件则用于描述标签库的信息以及每个标签的属性和行为,这些信息将被JSP容器读取,从而识别并正确处理自定义标签。 在本文中,提到了创建一个名为UserListTag的自定义标签类,该类继承自BodyTagSupport,...

    jsp java自定义标签 实现分页 当前位置标签

    这可以通过维护一个路径数组,在每个页面中更新并传递,然后在自定义标签中读取和展示。 实现时,可以在自定义标签中: 1. 通过请求对象获取当前URL或路径信息。 2. 分析路径,确定当前层级和父级路径。 3. 在标签...

    自定义配置文件读写CCF文件格式,可以看代码自行修改

    读写这类文件通常涉及到标准输入输出流(iostream)、文件流(fstream)或者第三方库如Boost.Config。 描述中提到的"main.cpp"是C++程序的入口点,通常包含程序的主要逻辑。在这个例子中,`main.cpp`文件包含了读写...

    JavaWeb 打包 “标签文件”

    - 在JSP容器(如Tomcat)启动时,会读取TLD文件,以便知道如何解析和执行自定义标签。 3. **标签库开发**: - 创建自定义标签通常需要一个TLD文件和至少一个标签文件。 - 标签文件中的内容可以通过`&lt;jsp:root&gt;`...

    Java根据word 模板,生成自定义内容的word 文件

    Apache POI是一个流行的开源项目,它允许Java开发者读写Microsoft Office格式的文件,包括Word(.doc和.docx)文件。通过使用Apache POI,我们可以操作Word文档中的文本、样式、图片等各种元素。 接下来,我们要...

    Spring 5.2.9 06 源码分析-spring自定义标签解析过程

    通过自定义标签,开发者可以创建更加符合业务逻辑和可读性强的XML配置文件。本文将深入剖析Spring 5.2.9版本中自定义标签的解析过程,旨在帮助读者理解Spring内部的工作机制。 首先,我们了解自定义标签的基本概念...

    Java web自定义标签知识.docx

    Java Web自定义标签是Java服务器页面(JSP)技术中的一种高级特性,允许开发者创建自己的标签库,以增强页面的可读性和复用性。在本文中,我们将深入探讨自定义标签的常用方法、处理流程及其相关知识。 一、Support...

    SSH框架整合通用模板(内涵自定义标签分页)

    这里的自定义标签可能指的是自定义的JSP标签库,可以简化视图层的开发,提高可读性和可维护性。 3. **Hibernate**:Hibernate是持久化层的ORM框架,它将Java对象与数据库表进行映射,通过API操作对象即可完成对...

    自定义的file标签

    为了实现自定义的file标签,我们需要利用HTML、CSS以及JavaScript(可能还需要一些库或框架如jQuery)来改造这个基本控件,以达到与网站整体风格一致的效果。 首先,我们需要创建一个HTML结构,用自定义的按钮或者...

    安卓天气日历时间选择倒计时相关-日历自定义标签.rar

    在这个"安卓天气日历时间选择倒计时相关-日历自定义标签.rar"压缩包中,我们主要关注的是日历功能的自定义标签部分。下面将详细探讨这一主题。 首先,自定义标签在日历应用中通常用于增强用户体验,让用户可以更...

    chrome浏览器新标签页可以自定义启动页

    在提供的压缩包文件"chenguandu-UbockNewTab-59ac578"中,很可能包含了这个自定义新标签页扩展的源代码。开发者可能已经实现了上述的功能,包括manifest.json配置、HTML结构、JavaScript逻辑和CSS样式。通过学习和...

    Java标签库—Taglib.pdf

    通过自定义标签还可以实现文件系统操作,例如读取、写入文件等。 ### 官方BugList与反馈 文档的作者鼓励读者反馈在实践过程中遇到的问题,并承诺会不断更新和完善文档内容。 ### 环境配置 文档的作者提到,本书...

    java自定义分页标签

    1. **标签库(Tag Library)**:定义自定义标签的XML文件(TLD - Tag Library Descriptor),用于描述标签的属性、行为和关联的Java类。 2. **标签处理类(Tag Handler Class)**:Java类实现自定义标签的功能,...

    安卓SD卡文件管理更新信息相关-自定义文件管理器.rar

    "安卓SD卡文件管理更新信息相关-自定义文件管理器.rar" 提供的资源可能包含了一个用于开发自定义文件管理应用的源代码库或相关的更新资料。 在Android平台上,文件管理器通常需要实现以下关键功能: 1. **文件浏览...

    jstl标签库依赖tld文件和jar

    **TLD文件**,全称Tag Library Descriptor,是JSTL等自定义标签库的元数据文件。TLD文件中包含了关于标签库的详细信息,如标签的名称、属性、方法映射等。在JSTL中,每个标签都有对应的TLD文件,它们定义了这些标签...

    Android中自定义标签的举例说明.pdf

    这个文件用于定义自定义标签的属性。例如: ```xml &lt;!-- 引用字符串资源 --&gt; &lt;!-- 定义枚举类型的属性 --&gt; &lt;flag name="child" value="10"&gt;&lt;/flag&gt; &lt;flag name="yong" value="18"&gt;&lt;/flag&gt; ...

    文件读取 文件读取C

    标签中提到的"C"意味着我们将讨论的是C语言原生的文件读取方法,而不是其他高级语言的抽象接口。在C语言中,文件操作需要手动管理内存和错误处理,这增加了编程的复杂性,但也提供了更大的灵活性。 "支持A版和W版的...

Global site tag (gtag.js) - Google Analytics