【问题标题】:Using JSP variable in XSLT select在 XSLT 选择中使用 JSP 变量
【发布时间】:2014-10-06 09:12:19
【问题描述】:

在 JSP 中,我将用户语言代码(en、de、es 等)存储在一个变量中。该值来自数据库。

另一方面,我有一个包含不同语言的所有值的 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>

看起来我遗漏了一些东西,非常欢迎任何帮助。

谢谢!

【问题讨论】:

  • Select 不接受任何表达式。

标签: java xml jsp xslt jstl


【解决方案1】:

终于找到了解决办法!:

<%@ 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>

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多