Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过属性或主体将XML文档传递给JSP自定义标记_Java_Xml_Jsp_Jakarta Ee_Jstl - Fatal编程技术网

Java 通过属性或主体将XML文档传递给JSP自定义标记

Java 通过属性或主体将XML文档传递给JSP自定义标记,java,xml,jsp,jakarta-ee,jstl,Java,Xml,Jsp,Jakarta Ee,Jstl,我想知道是否可以将xml文档传递给纯jstl定义的JSP自定义标记,如下所示: 自定义标记的主体,例如: <mt:mytag> <people> <person name="bob" age="23" /> <person name="sue" age="45" /> <person name="moe" age="35" /> </people> <mt

我想知道是否可以将xml文档传递给纯jstl定义的JSP自定义标记,如下所示: 自定义标记的主体,例如:

<mt:mytag>
    <people>
        <person name="bob" age="23" />
        <person name="sue" age="45" />
        <person name="moe" age="35" />
    </people>
<mt:mytag>
请注意,在非纯JSTL(使用java代码)中处理主体内容或属性链接是完全可能的,只是想知道JSTL+EL是否有这样的功能

编辑:分辨率

看起来Netbeans IDE有一个默认情况下不添加JSTL库的接口。您可以通过库->添加库->导入->Jstl 1.1->添加库来修复它

<%@ taglib tagdir="/WEB-INF/tags" prefix="mt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
<c:set var="message">
    <people>
        <person name="bob" age="23" />
        <person name="sue" age="45" />
        <person name="moe" age="35" />
    </people>
</c:set>
<mt:mytag message="${message}" />

实际上,您的第一个代码块(使用body)也适用于我。 如果要使用文件,请使用以下命令

<%@ taglib tagdir="/WEB-INF/tags" prefix="mt" %>
<mt:mytag messageUrl="http://link.to.document.xml" />

标签文件

<%@tag description="xml parser" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
<%@attribute name="messageUrl"%>
<c:import url="${messageUrl}" var="message" />
<x:parse var="a" doc="${message}" />
<x:forEach var="current" select="$a/people/person">
    <ul>
        <li>
            Name <x:out select="$current/@name" /> age <x:out select="$current/@age" />
        </li>
    </ul>
</x:forEach>

  • 姓名年龄

关于您的错误消息,请告诉我们您正在使用哪个web服务器。另外,请告诉我们您下载了哪些JSTL JAR以及从何处下载。

使用GlassFish 3.1.2,它与Netbeans 7.2.1一起打包,就像是Netbeans配置错误一样(错误报告中完全不透明)。我不得不手动添加jstl库。一个主要的WTF,但是谢谢你的回答!
<%@ taglib tagdir="/WEB-INF/tags" prefix="mt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
<c:set var="message">
    <people>
        <person name="bob" age="23" />
        <person name="sue" age="45" />
        <person name="moe" age="35" />
    </people>
</c:set>
<mt:mytag message="${message}" />
<%@ taglib tagdir="/WEB-INF/tags" prefix="mt" %>
<mt:mytag messageUrl="http://link.to.document.xml" />
<%@tag description="xml parser" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
<%@attribute name="messageUrl"%>
<c:import url="${messageUrl}" var="message" />
<x:parse var="a" doc="${message}" />
<x:forEach var="current" select="$a/people/person">
    <ul>
        <li>
            Name <x:out select="$current/@name" /> age <x:out select="$current/@age" />
        </li>
    </ul>
</x:forEach>