jsp标签

来源:互联网 发布:mac隐藏dock快捷键 编辑:程序博客网 时间:2024/05/18 03:08

写一个类继承SimpleTagSupport,

package org.kai.tagdemo;

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class XMLReader extends SimpleTagSupport {
    
    private String dicName;
    private String value;
    
    @Override
    public void doTag() throws JspException, IOException {
        
        SAXReader reader = new SAXReader();
        File file = new File("C:\\Users\\WangK\\Desktop\\"+dicName+".xml");
        try {
            Document document = reader.read(file);
             List<Element> list = document.selectNodes("/root/"+dicName);
             for (Iterator<Element> iter = list.iterator(); iter.hasNext(); ) {
                 Element element = iter.next();
                 if(value.equals(element.elementText("code"))) {
                     this.getJspContext().getOut().write(element.elementText("name"));
                     return;
                 }
             }
        } catch (DocumentException e) {
            e.printStackTrace();
        }
        
    }
    
    public void setValue(String value) {
        this.value = value;
    }
    public void setDicName(String dicName) {
        this.dicName = dicName;
    }
    public String getValue() {
        return value;
    }
    public String getDicName() {
        return dicName;
    }

}

WEB-INF下new一个mytaglib.tld文件

<?xml version="1.0" encoding="GBK"?>
<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 web-jsptaglibrary_2_0.xsd"
    version="2.0">
    <tlib-version>1.0</tlib-version>
    <short-name>mytaglib</short-name>
    <!-- 定义该标签库的URI -->
    <uri>http://www.crazyit.org/mytaglib</uri>
      <!-- 定义标签名 -->
        <name>dicselectsWritePlus</name>
        <!-- 定义标签处理类 -->
        <tag-class>org.kai.tagdemo.XMLReader</tag-class>
        <!-- 定义标签体为空 -->
        <body-content>empty</body-content>
        <attribute>
            <name>dicName</name>
            <required>true</required>
            <fragment>true</fragment>
        </attribute>
        <attribute>
            <name>value</name>
            <required>true</required>
            <fragment>true</fragment>
        </attribute>
    </tag>
</taglib>


jsp中

<!-- 导入标签库,指定mytag前缀的标签,
    由http://www.crazyit.org/mytaglib的标签库处理 -->
<%@ taglib uri="http://www.crazyit.org/mytaglib" prefix="mytag"%>

<mytag:dicselectsWritePlus value="03" dicName="ddtype"/>


有关的xml文件:

    File file = new File("C:\\Users\\WangK\\Desktop\\"+dicName+".xml");

<?xml version="1.0" encoding="GBK"?>
<root nums="9">
  <ddmarctype>
    <code>00</code>
    <name>A</name>
  </ddmarctype>
  <ddmarctype>
    <code>01</code>
    <name>B</name>
  </ddmarctype>
  <ddmarctype>
    <code>02</code>
    <name>C</name>
  </ddmarctype>
  <ddmarctype>
    <code>03</code>
    <name>E</name>
  </ddmarctype>
    <ddmarctype>
    <code>04</code>
    <name>F</name>
  </ddmarctype>
  <ddmarctype>
    <code>05</code>
    <name>G</name>
  </ddmarctype>
  <ddmarctype>
    <code>06</code>
    <name>H</name>
  </ddmarctype>
  <ddmarctype>
    <code>07</code>
    <name>I</name>
  </ddmarctype>
    <ddmarctype>
    <code>08</code>
    <name>J</name>
  </ddmarctype>

</root>


读取xml涉及到的jar包:

dom4j-1.6.1.jar
jaxen-1.1-beta-6.jar




原创粉丝点击