0

xml に基づいて動的メニューを作成しています。この XML が解析され、最終的なメニューが構築されます。xml は次のとおりです。

<menus>
    <menu>
        <name>menu.level1.Home</name>
        <action>transfer-to-account-input</action>
    </menu>
    <menu>
        <name>menu.level1.Accounts</name>
        <action>accounts-summary</action>
    </menu>
</menus>

jstl を使用して XML を解析しました。x:set が機能していないようです!

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%>

<x:forEach select="$docRoot/menus/menu" var="menuvar">
    <x:set select="$menuvar/name" var="menuName1" >
    <c:set var="menuName2">
        <x:out select="$menuvar/name" />
    </c:set>
    ${menuName1} //This doesn't show any thing
    ${menuName2} //This works!
</x:forEach>

私は間違いを犯していますか、それとも JSTL 1.2 のバグですか?

4

1 に答える 1

1

の構文はXPath 変数構文を使用してx:set参照していますが、JSTL 変数です。そのはず:$menuVarmenuVar

<x:set select="$pageScope:menuvar/name" var="menuName1" >

JSTL データを XPath 変数として使用する スコープ付き変数は、EL (${implicitObject.variableName}) での使用方法と同様に、XPath 式 ($implicitObject:variableName) で使用できます。暗黙的なオブジェクトが省略された場合、スコープは標準の順序で検索されます。「.」に注意してください。「[]」表記は、Bean プロパティへのアクセスには使用できません。

参考文献

于 2014-07-11T16:21:36.683 に答える