Question

Le problème que j'ai aujourd'hui est de traiter avec HTML dans une page JSP inclus, avec JSF. Voici donc la situation: j'utiliser JSF 1.2 par IBM sur RAD avec Websphere v6.1 J'ai un composant personnalisé (de la couche de la société) à utiliser les onglets. Et afin d'avoir un code plus propre, je veux juste séparer le code JSF de chaque onglet dans une JSP séparée, de cette façon, main.jsp:

<customTag:tabComponent>
<jsp:include page="/jsp/workflow/tab1.jsp"></jsp:include>
<div align="right">
    <customTag:switchToTab title="Next" tabValue="2"></customTag:switchToTab>
</div>
</customTag:tabComponent>

Et mon tab1.jsp:

<!-- Taglibs declared here -->
<f:verbatim>
<div id="myDivId">
    <fieldset>
        <legend>myLegend</legend>
        <h:outputText value="#{myBean.someContent}"></h:outputText>
        <!-- HERE are a lot of JSF components, selectItems, inputText... -->
    </fieldset>
</div>
</f:verbatim>

Ainsi, les composants JSF sont traités, mais HTML semble être traité après et apparaît après, en dehors du code HTML généré par JSF. Quelque chose comme

<table>
    <!-- generated content -->
</table>
<div id="myDivId">
...

bien que la table doit être à l'intérieur du div. J'ai essayé d'utiliser la balise de <f:verbatim> différentes façons, et la seule solution était d'encercler <div> et </div> par les balises d'ouverture et de fermeture mot pour mot, ce qui est sale et fait Websphere devenir fou.

Google n'a rien trouvé pertinent, alors avez-vous les gars déjà rencontré le même problème? Est-il possible de trouver une solution propre ou dois-je inclure tout mon code dans le même JSP? Merci à l'avance.

Était-ce utile?

La solution

Tout d'abord, qui est recognizeable comme héritage JSF 1.0 / 1.1 comportement. Le f:verbatim était en effet nécessaire de prendre du texte modèle dans l'arborescence des composants JSF. Cependant, le f:verbatim est tout à fait superflu puisque le nouveau gestionnaire d'affichage du JSF de 2006 1.2 qui prend automatiquement tout texte de modèle à l'intérieur f:view dans l'arborescence des composants. , Sont donc vous vraiment en utilisant JSF 1.2? Websphere 6.1 livré avec JSF 1.1 builtin les bibliothèques et la mise à niveau à 1,2 ne sont pas aussi facile que de placer libs dans /WEB-INF/lib.

En ce qui concerne votre problème réel, vous devez envelopper uniquement texte de modèle avec f:verbatim, non worthfully composants JSF. Ainsi, ce qui suit devrait fonctionner:

<f:verbatim>
    <div id="myDivId">
        <fieldset>
            <legend>myLegend</legend>
</f:verbatim>
<h:outputText value="#{myBean.someContent}"></h:outputText>
<!-- HERE are a lot of JSF components, selectItems, inputText... -->
<f:verbatim>
        </fieldset>
    </div>
</f:verbatim>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top