【问题标题】:Parsing XML inside JSF在 JSF 中解析 XML
【发布时间】:2009-10-28 21:38:25
【问题描述】:

谁能告诉我如何在 JSF 页面中解析 XML 文件?

问题是我有一个 XML 文件,并且想将其中的一些数据放入我的 JSF 页面。我的第一个想法是包含 JSTL Core 和 XML 库并执行以下操作:

<c:import var="some-info-doc" src="some-info.xml" /> 
<x:parse  var="some-info-xml" xml="some-info-doc" />

<h:outputText>                  
   <x:out select="$some-info-xml/a-piece-of-data" />            
</h:outputText>

但是,此代码导致错误。 c:import 未被识别。因此,我决定使用本地 XML:

<x:parse var="simple">
   <child>basic</child>
</x:parse>

<h:outputText>                  
   <x:out select="$simple/child" />         
</h:outputText>

这导致子标签被打印在结果页面中。并且输出来自 x:parse 标签,而不是 h:output

那么,有没有其他方法可以在 JSF 页面中解析 XML(不包括作为对象从某个由我编写的模块发送的 XML)?还是我的代码有错误?

【问题讨论】:

    标签: xml jsf jstl


    【解决方案1】:

    1.不要试图混合使用JSTL标签和JSF标签;它们是粉笔和奶酪。

    2. JSF 是一个 MVP 框架,因此您尝试在视图中定义数据源是违反常规的。

    3. 要通过outputText 控件发出数据,请将其value 属性绑定到模型(例如托管bean)。

    或许可以这样做:

    <!-- other code elided -->
    <x:set var="x" select="$simple/child" />
    <h:outputText value="#{x}" />
    

    ...但是,一般来说,请参见第 12 点。


    只是一个建议:确保您已将 http://java.sun.com/jsp/jstl/core 命名空间添加到页面以使用 JSTL 核心。

    【讨论】:

    • 1.我会努力的。 2. 实际上,我想通过 XML 定义我的页面结构。我只是喜欢它提供的抽象级别。我发布了一个问题,应该涵盖这个主题:stackoverflow.com/questions/1641886/…。 3. 不幸的是,这不起作用。假设我在使用 JSF 时应该忘记 XPath。我会想念它
    • 对您的评论的评论,emanemos:您确实不需要需要忘记 XPath。您只需要将所需的逻辑移动到正确的位置,例如servlet 或托管 bean。
    猜你喜欢
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    • 2014-01-19
    • 2014-05-13
    • 2016-10-31
    • 2015-12-25
    相关资源
    最近更新 更多