创建一个简单的自定义标签。

J2EE 码拜 10年前 (2015-04-06) 1167次浏览 0个评论

创建一个简单的自定义标签。

什么情况。。

自定义标签 代码处理文件:

Print.java代码 如下

package com.taglib;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.TagSupport;

public class Print extends TagSupport{

/**
 * 
 */
private static final long serialVersionUID = 1L;

PageContext pageContext;

public void Print(){
System.out.println(“hhh”);
}

public int doStartTag() throws JspException{
System.out.println(“doStartTag”);
return this.SKIP_BODY;
}

public int doEndTag() throws JspException{
System.out.println(“deEndTag”);
JspWriter out = pageContext.getOut();
try {
out.println(“<html><body>”);
out.println(“<b>这是我第一个自定义标签</b>”);
out.println(“</body></html>”);
} catch (IOException e) {
e.printStackTrace();
}
return this.EVAL_PAGE;
}
public void setPageContext(PageContext pageContext){
this.pageContext=pageContext;
}
public PageContext getPageContext(){
return this.pageContext;
}
}

标签库描述文件:
taglib.tld代码若下:

<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE taglib PUBLIC “-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN”
                        “http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd”>
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.1</jsp-version>
<short-name>nn</short-name>
<uri>stu</uri>
<tag>
<name>name</name>
<tag-class>com.taglib.Print</tag-class>
</tag>
</taglib>

taglib.jsp代码如下:

<%@ page language=”java” import=”java.util.*” pageEncoding=”ISO-8859-1″%>
<%@ taglib uri=”stu”  prefix=”ll” %>

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
<html>
  <head>
    
    <title>My JSP “”taglib.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>
    <ll:name />
  </body>
</html>

创建一个简单的自定义标签。
你参考下 这篇文章:
http://blog.csdn.net/jackieliulixi/article/category/2594319
创建一个简单的自定义标签。
1、编写一个实现tag接口的标签处理器类
public class ViewIPTag implements Tag {
 private PageContext pageContext;
 
 public int doStartTag() throws JspException {
 
  HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
  JspWriter out = pageContext.getOut();
 
  String ip = request.getRemoteAddr();
     try {
   out.write(ip);
  } catch (IOException e) {
   throw new RuntimeException(e);
  }
 
  return 0;
 }
 
 public int doEndTag() throws JspException {
  return 0;
 }
 public Tag getParent() {
  return null;
 }
 public void release() {
 }
 public void setPageContext(PageContext arg0) {
  this.pageContext = arg0;
 }
 public void setParent(Tag arg0) {
 }
}
2、在web-inf/目录下新建tld文件,在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">
   
    <description>A tag library exercising SimpleTag handlers.</description>
    <tlib-version>1.0</tlib-version>
    <short-name>SimpleTagLibrary</short-name>
    <uri>/itcast</uri>//为外部使用给定一个名称空间
   
   
    <tag>
        <name>viewIP</name> <!-- 为标签处理器类配一个标签名 -->
  <tag-class>cn.itcast.web.tag.ViewIPTag</tag-class>
  <body-content>empty</body-content>//也可以是JSP,JSP表示有内容,如果是empty但是标签体有内容,就会报错
    </tag>
   
   
</taglib>
3、在jsp页面中导入并使用自定义标签
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/itcast" prefix="itcast" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>输出客户机的IP</title>
  </head>
 
  <body>
     您的IP是:<itcast:viewIP/>
  </body>
</html>

参考下

创建一个简单的自定义标签。
1、taglib标签文件要放在WEB-INF/tags目录下面
2、引入标签中的uri改为<%@ taglib uri=”/WEB-INF/tags/taglib.tld”  prefix=”ll” %>
创建一个简单的自定义标签。
引用 2 楼 zy353003874 的回复:
1、编写一个实现tag接口的标签处理器类
public class ViewIPTag implements Tag {
 private PageContext pageContext;
 
 public int doStartTag() throws JspException {
 
  HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
  JspWriter out = pageContext.getOut();
 
  String ip = request.getRemoteAddr();
     try {
   out.write(ip);
  } catch (IOException e) {
   throw new RuntimeException(e);
  }
 
  return 0;
 }
 
 public int doEndTag() throws JspException {
  return 0;
 }
 public Tag getParent() {
  return null;
 }
 public void release() {
 }
 public void setPageContext(PageContext arg0) {
  this.pageContext = arg0;
 }
 public void setParent(Tag arg0) {
 }
}
2、在web-inf/目录下新建tld文件,在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">
   
    <description>A tag library exercising SimpleTag handlers.</description>
    <tlib-version>1.0</tlib-version>
    <short-name>SimpleTagLibrary</short-name>
    <uri>/itcast</uri>//为外部使用给定一个名称空间
   
   
    <tag>
        <name>viewIP</name> <!-- 为标签处理器类配一个标签名 -->
  <tag-class>cn.itcast.web.tag.ViewIPTag</tag-class>
  <body-content>empty</body-content>//也可以是JSP,JSP表示有内容,如果是empty但是标签体有内容,就会报错
    </tag>
   
   
</taglib>
3、在jsp页面中导入并使用自定义标签
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/itcast" prefix="itcast" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>输出客户机的IP</title>
  </head>
 
  <body>
     您的IP是:<itcast:viewIP/>
  </body>
</html>

参考下

我完全不知道哪里错了阿。求指教

创建一个简单的自定义标签。
引用 3 楼 shixitong 的回复:

1、taglib标签文件要放在WEB-INF/tags目录下面
2、引入标签中的uri改为<%@ taglib uri=”/WEB-INF/tags/taglib.tld”  prefix=”ll” %>

好像不行啊

创建一个简单的自定义标签。
引用 5 楼 a303274454 的回复:
Quote: 引用 3 楼 shixitong 的回复:

1、taglib标签文件要放在WEB-INF/tags目录下面
2、引入标签中的uri改为<%@ taglib uri=”/WEB-INF/tags/taglib.tld”  prefix=”ll” %>

好像不行啊

你把你的配置贴出来,我刚才在本机验证了是可以的

创建一个简单的自定义标签。
你把我那个考过去看行不行,如果可以就是你的配置问题了
创建一个简单的自定义标签。
引用 7 楼 zy353003874 的回复:

你把我那个考过去看行不行,如果可以就是你的配置问题了

你的考过来时可以的。。

创建一个简单的自定义标签。
引用 6 楼 shixitong 的回复:
Quote: 引用 5 楼 a303274454 的回复:
Quote: 引用 3 楼 shixitong 的回复:

1、taglib标签文件要放在WEB-INF/tags目录下面
2、引入标签中的uri改为<%@ taglib uri=”/WEB-INF/tags/taglib.tld”  prefix=”ll” %>

好像不行啊

你把你的配置贴出来,我刚才在本机验证了是可以的

什么配置。。完全搞不清楚。我是小白。

创建一个简单的自定义标签。
是不是目录啊创建一个简单的自定义标签。
创建一个简单的自定义标签。
10分
1、taglib标签文件要放在WEB-INF/tags目录下面
2、引入标签中的uri改为<%@?taglib?uri=”/WEB-INF/tags/taglib.tld”??prefix=”ll”?%>

前面说了把taglib.tld放到WEB-INF下的tags目录中,如果没有新建一个tags文件夹

创建一个简单的自定义标签。
20分
引用 8 楼 a303274454 的回复:
Quote: 引用 7 楼 zy353003874 的回复:

你把我那个考过去看行不行,如果可以就是你的配置问题了

你的考过来时可以的。。

你按照我拷过去的代码照着把你的改一遍就行了呀!


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明创建一个简单的自定义标签。
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!