`

JSP自定义标签(EL表达式问题和TLD文件说明)

    博客分类:
  • jsp
阅读更多

首先说明这是一个HelloWorld程序。

解决的问题有:1.工程中无法使用EL表达式处理; 2.TLD应如何定义; 3.自定义一个JSP标签

 

1.EL表达式无法使用

(我使用的是今天晚上刚下载的tomcat.6.0.36版本,不过这个问题和tomcat版本没有关系)

1)之前总会出现的问题。我原来的解决方法是将web.xml文件中的版本号由2.5修改为2.4

例如:<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd">

但是这样感觉不大好。

2)现解决方法是将JAVA EE 5 Libraries中的JAR包复制到工程中的lib目录下就解决了这个问题。

(我的下载地址:http://download.csdn.net/detail/cl61917380/5227429)

 

 

2.TLD应如何定义

1)如上图,将tag.tld文件复制到WEB-INF目录下。

2)有的人问如何可以找到官方的TLD文件定义的格式。其实只要在文档头部添加xsd,告诉IDE我的XML应该如何定义就行了,这样在写XML文件的时候IDE会给我们提示。

 

<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
    version="2.1">
    
	<tlibversion>1.0</tlibversion>
	<jspversion>1.1</jspversion>
	<tag>
		<name>tag</name>
		<tagclass>com.jungle.tag.PageTag</tagclass>
		<bodycontent>empty</bodycontent>
		<!-- 定义属性 -->
		<attribute>
			<name>currentPage</name><!-- 属性名字 -->
			<type>int</type><!-- 属性类型 -->
			<required>true</required><!-- 是否必须 -->
			<rtexprvalue>true</rtexprvalue><!-- 支持EL表达式 -->
		</attribute>
		<attribute>
			<name>pageCount</name><!-- 属性名字 -->
			<type>int</type><!-- 属性类型 -->
		</attribute>
	</tag>
</taglib>


3.创建标签类

 

 

public class PageTag extends TagSupport {
	private int currentPage = 1;
	private int pageCount = 10;

	@Override
	public int doStartTag() throws JspException {
		ServletResponse resp = this.pageContext.getResponse();
		try {
			PrintWriter writer = resp.getWriter();
			writer.print("doStartTag()..." + "currentPage = " + currentPage + " pageCount = " + pageCount);
			writer.flush();
			writer.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return super.doStartTag();
	}

	public int getCurrentPage() {
		return currentPage;
	}

	public void setCurrentPage(int currentPage) {
		this.currentPage = currentPage;
	}

	public int getPageCount() {
		return pageCount;
	}

	public void setPageCount(int pageCount) {
		this.pageCount = pageCount;
	}

}

JSP页面:

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib uri="/WEB-INF/tag.tld" prefix="pt"%><!--引入自定义标签-->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!--这里用的是1.2的uri,1.1的uri是http://java.sun.com/jstl/core 我用这两个uri页面都正常-->
<%
	 request.setAttribute("currentPage",3);//当前页
	 request.setAttribute("content","查询关键字");//查询关键字
%>
         <pt:tag currentPage="${currentPage}" pageCount="123"/>
<br>

 

 

分享到:
评论

相关推荐

    jsp自定义标签开发+TLD文件元素详解+实例

    jsp自定义标签开发+TLD文件元素详解+实例;从jsp1.1开始就可以在jsp页面中使用自定义标签了,使用自定义标签不但可以实现代码重用,而且可以使jsp代码更简洁。Jsp2.0的标签扩展API中又增加了SimpleTag接口和其实现类...

    JSP自定义标签学习笔记

    本人自行研究JSP自定义标签的学习笔记 目录如下: 目录 一、概述 1 1.1 使用简单标签机制 2 1.2 使用标签文件 3 二 、自定义标签简介 3 2.1 自定义标签概念 3 2.2 标签相关概念 3 2.3 如何创建自定义标签 3 三、自...

    JSP自定义标签:最近在项目中要用到这种技术,所以自己就写一个经典的HelloWorld实例

    标签库描述符(TLD)文件:描述标签库的XML文档,向JSP引擎提供有关自定义标签的标签处理程序的信息。tag标签相关属性:实现简单标签处理程序 标签处理程序是一个在运行时调用的Java类,它包含在 JSP文件中使用的...

    自定义标签的tld文件

    学习时找到的tld文件,不用做商业用途;用法还比较全面,里面的东西都做了详细的注解,比如说:怎么定义这个标签的名字,标签的属性,有什么的约束,都做了较详细的解释,上手比较容易,使用方便,但在里面定义标签...

    JSP自定义标签分页

    JSP自定义标签分页+Struts1.x标签,包含标签分页类、标签tld文件、web.xml配置和调用例子,非常地简单。 只要在Action传request.setAttribute("listUser", listUser);到JSP即可实现自动分页,输出分页样式可以自己去...

    jsp 自定义标签 tldTest

    jsp 自定义标签 tldTestjsp 自定义标签 tldTestjsp 自定义标签 tldTestjsp 自定义标签 tldTestjsp 自定义标签 tldTestjsp 自定义标签 tldTestjsp 自定义标签 tldTestjsp 自定义标签 tldTest

    从JSTL和STRUTS的TLD文件到自定义EL函数

    从JSTL和STRUTS的TLD文件到自定义EL函数,自己整理的关于jstl和struts标签的使用方法,以及el函数的建立等

    Java自定义标签开发Tag和tld开发

    Java自定义标签开发Tag和tld开发,非常详细的哟

    JSTL标签所需要的tld文件(c.tld、fmt.tld、fn.tld)

    JSTL标签所需要的tld文件,包括 c.tld、fmt.tld、fn.tld 三个 几乎所有的JSTL标签下载的zip中都只有一个c.tld,然后只讲解&lt;C:&gt;标签怎么用,其实&lt;fmt:&gt; &lt;fn:&gt;标签也非常好用和实用,找了好久才找到...

    jsp自定义标签

    jsp自定义标签,比如说if,foreach,out,format

    tld自定义标签基础入门demo

    tld自定义标签,基础入门级demo,使用的是最基础的mvc架构运行,适合刚接触tld的程序员,附有详细说明,demo导入即可运行,看了之后仍不是很清楚的可查看该案例的博客

    EL自定义函数引用

    EL自定义函数实现步骤: 1.开发函数处理类,即普通的Java类;每个函数对应类中的一个静态方法。 2. 建立TLD(Tag Library Descriptor),定义表达式函数。...4.在JSP页面中使用自定义函数,实现EL自定义函数引用。

    java+hibernate+jsp+tld+自定义标签分页

    此分页代码易懂使用方便效率高,并且外带一份使用说明

    tld自定义标签demo

    tld自定义标签demo 学习小练习

    struts2自定义标签案例详解

    这里在实现自定义标签时,继承的2个类分别是org.apache.struts2.views.jsp.ComponentTagSupport和org.apache.struts2.components.Component,ComponentTagSupport实际上是对BodyTagSupport的一次封装,看一下...

Global site tag (gtag.js) - Google Analytics