在JSF中解析XML

问题描述:

有人可以告诉我如何解析JSF页面内的XML文件吗?在JSF中解析XML

事情是我有XML文件,并希望从它的一些数据到我的JSF页面。我首先想到的是包括JSTL核心和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:导入未被识别。所以,我决定玩一个本地的XML:

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

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

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

因此,在JSF页面中是否有其他解析XML的方法(不包括将XML作为来自特定的我的书面模块的对象发送)?或者在我的代码中有任何错误?

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

2. JSF是一个MVP框架,所以你要通过试图在视图中定义数据源来反对谷物。

3.要经由outputText控制发射数据,其value属性绑定到模型(例如一个managed bean)。

这可能是可以做到这样的事情:

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

...但是,在一般情况下,看到点和。


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

+0

1.我会努力的。实际上,我想通过XML定义我的页面结构。我只是喜欢它提供的抽象级别。我发布了一个问题,应该涵盖这个主题:http://*.com/questions/1641886/xml-as-structure-jsf-as-representation-is-it-a-nice-idea。 3.不幸的是,这不起作用。假设我在使用JSF时应该忘记XPath。我会想念它 – emanemos 2009-10-30 09:07:08

+0

评论你的评论,emanemos:你不**需要*忘记* XPath。您只需*将所需的逻辑移动到正确的位置,例如一个servlet或一个托管bean。 – BalusC 2009-12-08 13:01:56