2014-10-06 67 views
0

在JSP中,我將用戶語言代碼(en,de,es等)存儲在變量中。該值來自數據庫。在XSLT中使用JSP變量select

在另一方面,我有不同語言的所有值的XML文件,像這樣:

<?xml version="1.0" encoding="UTF-8"?> 
<language> 
    <en enable="false" /> 
    <de enable="false" /> 
</emergency> 

我試圖使用該變量在XSTL選擇,但沒有,我已經試過工作(我嘗試了很多瘋狂的事):

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

<c:set var="USER_LANGUAGE" value="en" /> 

<c:import url="/languageData.xml" var="language" /> 
<x:parse xml="${language}" var="language" /> 

// work 
// <x:if select="$language/en[@enable = 'true']"> 

// don't work :(
<x:if select="$language/${USER_LANGUAGE}[@enable = 'true']"> 
    // magic 
</x:if> 

看起來像我失去了一些東西,任何幫助將是非常歡迎的。

謝謝!

+0

選擇不接受任何表達式。 – laksys 2014-10-07 10:11:32

回答

0

最後,我找到了解決辦法!:

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

<c:set var="USER_LANGUAGE" value="en" /> 

<c:import url="/languageData.xml" var="language" /> 
<x:parse xml="${language}" var="language" /> 

<x:if select="$language/*[name()=$pageScope:USER_LANGUAGE][@enable = 'true']"> 
    // magic 
</x:if> 

希望它能幫助!