Java 如何通过jstl jsp读取和解析请求中存储的xml字符串

Java 如何通过jstl jsp读取和解析请求中存储的xml字符串,java,jsp,netbeans,jstl,Java,Jsp,Netbeans,Jstl,我正在控制器(servlet)中创建一个mvc应用程序,填充一个请求变量,然后尝试通过foreach jstl标记在视图(jsp)中读取和显示它。问题是我不知道如何从会话中读取xml,然后解析它并在jsp页面中显示属性和元素。下面是我的代码 在servlet中,设置请求属性: request.setAttribute("XMLDocument", xmlResultStr); 这是一个可以存储在xmlResultStr中的示例xml <?xml version="1.0" encodin

我正在控制器(servlet)中创建一个mvc应用程序,填充一个请求变量,然后尝试通过foreach jstl标记在视图(jsp)中读取和显示它。问题是我不知道如何从会话中读取xml,然后解析它并在jsp页面中显示属性和元素。下面是我的代码

在servlet中,设置请求属性:

request.setAttribute("XMLDocument", xmlResultStr);
这是一个可以存储在xmlResultStr中的示例xml

<?xml version="1.0" encoding="UTF-8"?>
<SearchResults>
    <result url="http://haacked.com/" totalcount="14">
        <keyword count="9">start</keyword>
        <keyword count="5">end</keyword>
    </result>
    <result url="http://feeds.haacked.com/haacked" totalcount="14">
        <keyword count="9">start</keyword>
        <keyword count="5">end</keyword>
    </result>
</SearchResults>

开始
结束
开始
结束
在jsp页面中,我正在使用这段代码,但完全没有运气,我搜索了很多小时,完全停留在这段代码上:

<x:parse xml="${XMLDocument}" var="xml"/>

                <c:out value="${xml}" />

                <x:forEach select="$xml/SearchResults/result" var="item">
                    <c:set var="elementName" value="url"/> 
<x:out select="$item/*[name()=$elementName]" />
                    <h3><a href="<x:out select="$item/*[name()=$elementName]" />" target="_blank"><x:out select="$item/*[name()=$elementName]" /></a></h3>
                    <p>
                        <%-- somehow display keywords list here, like shown below --%>
                    </p>
                    <hr />
                </x:forEach>



我想要的是:

  <h3><a href="http://haacked.com/" target="_blank">http://haacked.com/</a></h3>
            <p>
                (start - 9, end - 5)
            </p>
            <hr />


(开始-9,结束-5)



我的建议:避免在会话中存储XML字符串,并尝试在JSP中解析它

采用MVC原则:使用Java代码解析文档,然后将其存储在会话中。将文档转换为JavaBean,并将此JavaBean存储在会话中,而不是存储XML字符串

然后在JSP中使用JSTL核心标记库和JSP EL来显示存储在这个Javabean中的信息