jsp中自定义标签

来源:互联网 发布:淘宝澳洲运费 编辑:程序博客网 时间:2024/05/16 11:28

自定义标签小案例(输出自身ip地址)

以前经常看到把java代码写在jsp页面中,这样jsp页面看起来会特别凌乱,还不好维护,今天我们将java代码提取出来,定义成标签类

先来看下自定义标签的执行过程:

1:首先浏览器发起请求

2:请求到达web服务器

一:首先需要导入jar包:jsp-api.jar

在Tomcat的lib文件夹中有

二:编写自定义标签代码

在java中定义class类,并继承TagSupport类,重写其中的doStart方法

public class ViewIpTag extends TagSupport{@Overridepublic int doStartTag() throws JspException {// TODO Auto-generated method stubHttpServletRequest request = (HttpServletRequest)pageContext.getRequest();JspWriter out = pageContext.getOut();String remoteAddr = request.getRemoteAddr();try {out.print(remoteAddr);} catch (IOException e) {// TODO Auto-generated catch block//转成运行时异常抛出去throw new RuntimeException(e);}return super.doStartTag();}}
因为在调动doStartTag方法之前已经调用了setPageContext方法,所以可以直接得到request对象

三:完事以后开始自定义标签

在WEB-INF下新建一个   *.tld文件

查看Tomcat中的标签文件, 在本地磁盘中打开tomcat文件夹下的 .tld文件:

D:\apache-tomcat-7.0.42\apache-tomcat-7.0.42\webapps\examples\WEB-INF\jsp2\jsp2-example-taglib.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>http://www.xiaoxiao.com</uri>    <tag>        <!-- <name>viewIp</name>        <tag-class>com.lzl.web.ViewIpTag</tag-class>        <body-content>empty</body-content> -->    </tag> </taglib>

四:在tag标签中定义我们需要的标签

<name>标签中起名viewIp,用以显示Ip地址

<tag-class>中写我们定义的java类的全限定名

<body-content>表示标签内容是否为空,例如<p>   </p>标签,中间为空,默认为空

在<tag>标签上的<uri>标签中定义jsp页面中引入的uri地址

五:最终就可以调用了

 至此自定义标签就完成了!

0 0
原创粉丝点击