コントローラー(サーブレット)でmvcアプリケーションを作成しています。リクエスト変数を入力してから、foreach jstlタグを介してビュー(jsp)に読み込んで表示しようとしています。問題は、セッションから xml を読み取って解析し、jsp ページに属性と要素を表示する方法がわからないことです。以下は私が持っているコードです。
サーブレットで、リクエスト属性を設定します。
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 />