写一个类继承SimpleTagSupport,
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