- PR -

Tomcat6+Xmlタグライブラリ(JSTL)

1
投稿者投稿内容
しましま
会議室デビュー日: 2003/04/01
投稿数: 14
投稿日時: 2007-03-12 22:40
表題の件でお分かりの方がいらっしゃいましたら、教えて頂けますでしょうか。

[環境]
Windows XP
Java SE 6
Tomcat 6.0.10
JSTL 1.1

[問題]以下のようなJSPページを実行するとエラーが発生
---
<%@ page contentType="text/html;charset=Windows-31J" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
<c:set var="xmlText">
<a>
<b>
<c>
foo
</c>
</b>
<d>
bar
</d>
</a>
</c:set>
<x:parse var="a" doc="${xmlText}" />
<x:out select="$a//c" />
---

エラーメッセージは、
---
org.apache.jasper.JasperException: An exception occurred processing JSP page xml.jsp at line 20
17: </c:set>
18:
19: <x:parse var="a" doc="${xmlText}" />
20: <x:out select="$a//c" />
---

同じコードがTomcat 5.5で動作することは確認しています。
Tomcat 6.0になってなにかJSTLの扱いが変わっているのでしょうか。
お分かりの方いらっしゃいましたら、お教えください。

[ メッセージ編集済み 編集者: しましま 編集日時 2007-03-12 22:42 ]
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-03-15 16:17
$a//c というのはどういう意味合いなのでしょうか?
EL式だと ${a} といった形式なのでは?

このあたりは私も勉強不足なのでそういう記法があるのかないのか分からないのですが。
しましま
会議室デビュー日: 2003/04/01
投稿数: 14
投稿日時: 2007-03-15 16:47
EL式とは違うもので(?)、Xmlタグライブラリ固有のXPathの表記だったと思います。
この場合は、<x:parse>要素でパースしたXML全体が$aで、その中の<c>要素をすべて取得するという意味になるはずです。
1

スキルアップ/キャリアアップ(JOB@IT)