Pregunta

El problema que tengo hoy es sobre cómo tratar con HTML en un JSP incluido, con JSF. Así que aquí está la situación: Puedo utilizar JSF 1.2 por IBM en RAD con WebSphere v6.1 Tengo un componente personalizado (de la capa de la empresa) para usar pestañas. Y con el fin de tener un código más limpio, sólo quiero separar el código JSF de cada ficha en un JSP separado, de esta manera, 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>

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

Así que los componentes JSF se procesan, pero HTML parece estar tratada después y aparece después, fuera del código HTML generado por JSF. Algo así como

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

A pesar de que la mesa debe estar dentro de la div. He intentado utilizar las diferentes formas de etiqueta <f:verbatim>, y la única solución era rodear <div> y </div> por la apertura pie de la letra y etiquetas de cierre, que está sucio y hace Websphere volverse loco.

Google no encontró nada relevante, por lo que ustedes han encontrado ya el mismo problema? ¿Es posible encontrar una solución limpia o tengo que incluir todo mi código dentro de la misma JSP? Gracias de antemano.

¿Fue útil?

Solución

En primer lugar, que es reconocible como legado JSF comportamiento 1.0 / 1.1. El f:verbatim fue de hecho obligado a adoptar texto de la plantilla en el árbol de componentes JSF. Sin embargo, el f:verbatim es totalmente superflua, ya que el nuevo controlador de vista de la del 2006 JSF 1.2, que toma automáticamente cualquier texto de la plantilla en el interior f:view en el árbol de componentes. Por lo tanto, ¿estás realmente usando JSF 1.2? Websphere 6.1 se incluye con incorporadas bibliotecas JSF 1.1 y actualización a 1,2 no es tan fácil como se acaba de colocar libs en /WEB-INF/lib.

En cuanto a su problema real, es necesario envolver Sólo texto de la plantilla con f:verbatim, los componentes no worthfully JSF. Por lo tanto, el siguiente debería funcionar:

<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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top