2009-10-28 3 views
0

quelqu'un pourrait-il me dire comment analyser le fichier XML dans une page JSF? Le truc, c'est que j'ai un fichier XML et que je veux y mettre des données sur ma page JSF. Ma première pensée était d'inclure JSTL Core XML libs et de faire quelque chose comme ceci:Analyse XML à l'intérieur de JSF

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

Cependant, ce code a entraîné une erreur. c: l'importation n'a pas été reconnue. Alors, je décide de jouer avec un morceau local XML:

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

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

Cela a conduit à l'étiquette de l'enfant en cours d'impression dans la page de résultats. Et la sortie est venue de la balise x: parse, pas h: sortie. Donc, est-il possible d'analyser XML à l'intérieur d'une page JSF (sans inclure le XML en tant qu'objet provenant d'un certain module écrit en parallèle)? Ou y a-t-il des erreurs dans mon code?

Répondre

1

1. N'essayez pas de mélanger des étiquettes JSTL et des étiquettes JSF; ils sont craie et fromage. JSF est un framework MVP, donc vous allez à contre-courant en essayant de définir vos sources de données dans la vue.

3. pour émettre des données par l'intermédiaire d'une commande outputText, se lier à son attribut value au modèle (par exemple un bean géré).

Il est sans doute possible de faire quelque chose comme ceci:

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

... mais, en général, voir les points et .


Juste une suggestion: vérifiez que vous avez ajouté l'espace de noms http://java.sun.com/jsp/jstl/core à la page d'utiliser noyau JSTL.

+0

1. Je vais essayer fort. 2. En fait, je voulais définir la structure de mes pages via XML. J'aime juste le niveau d'abstraction qu'il offre. J'ai posté une question, qui devrait couvrir ce thème: http://stackoverflow.com/questions/1641886/xml-as-structure-jsf-as-representation-is-it-a-nice-idea. 3. Malheureusement, cela ne fonctionne pas. Supposons que je devrais oublier XPath tout en travaillant avec JSF. Je vais le manquer – emanemos

+0

Un commentaire sur votre commentaire, emanemos: vous n'avez pas ** besoin de * oublier * XPath. Vous avez juste besoin de * déplacer * la logique désirée au bon endroit, par ex. une servlet ou un bean géré. – BalusC