Je travaille sur un projet dont j'ai besoin pour générer un formulaire dynamiquement. L'utilisateur choisit le composant qu'il veut mettre sur l'écran et le programme l'ajoute dans le formulaire. Pour ce faire, j'utilise XML pour définir l'état actuel du formulaire et, à première vue, j'ai pensé à utiliser XSLT pour effectuer la transformation en JSF mais maintenant j'évalue aussi JSTL. Concernant le dernier, j'ai un problème.Parse JSTL XML à l'intérieur de JSF
Supposons que j'ai ce fichier xml (un questionnaire avec deux inputTexts):
<questionnaire>
<component name='input'>
<id>input1</id>
</component>
<component name='input'>
<id>input2</id>
</component>
</questionnaire>
Ce fichier JSTL:
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<x:parse var="doc" xml="${questionarioXSLBean.xml}"/>
<x:forEach var="n" select="$doc/questionario/componente">
<x:if select="$n/@nome = 'input'">
<x:set var="id" select="$n/id" />
<h:inputText id="#{id}"/>
</x:if>
</x:forEach>
Le problème est dans cette ligne: <h:inputText id="#{id}"/>
parce #{id}
doesn ne retourne rien (je veux utiliser la valeur qui est dans le fichier xml et assignée dans la variable id).
Quelqu'un peut-il m'aider? Merci d'avance! P.S.
Merci Gaurav. En ce qui concerne XSLT, j'ai eu un problème en l'utilisant et je n'ai pas trouvé de solution. Peut-être que vous pouvez m'aider d'une manière ou d'une autre. Le problème est qu'après la transformation, les balises de composant générées incluent toujours une définition d'espace de nommage à l'intérieur, de cette manière, JSF ne peut pas reconnaître la codification du composant. Par exemple, au lieu de générer il génère . Y a-t-il un moyen de le supprimer? –
Cela nécessiterait un coup d'oeil à l'outil/code que vous utilisez pour générer JSF. Je ne peux rien penser du haut de ma tête –