...
Cuando se activa esta configuración, entonces no podemos usar componentes de ámbito sesión, conversación o página. Solo se pueden usar componentes con ámbito evento (Request), stateless o aplicación.
Configuración en Aplicaciones FundeWeb v2
| Info |
|---|
A partir del arquetipo de aplicaciones FundeWeb 2.0 versión 2.0.13, no es necesario realizar estas configuraciones. |
En el fichero components.xml, tenemos que añadir el siguiente filtro:
| Bloque de código | ||
|---|---|---|
| ||
<!-- Restful or no Session request -->
<web:no-session-request-filter disabled="false" installed="true"
regex-url-pattern="(/error|/error_cas|/portal|/politicaCookies|/politicaPrivacidad|/declaracionAccesibilidad|/fundeweb/40\d|/fundeweb/50\d|/fundeweb/accessLock|/fundeweb/error_auth_method|/fundeweb/error_no_auth)\.seam|/rest/.*|/javax\.faces\.resource/.*|/resources/.*"/> |
donde indicamos las páginas web que no necesitan sesión web para poder visualizarse.
Si la aplicación contiene las páginas:
- /paginas/politicaCookies.xhtml
- /paginas/politicaPrivacidad.xhtml
estas, se mueven a la carpeta raíz del modulo Web (carpeta /web/src/main/webapp). Además, tendremos que modificar las navegaciones a estas páginas, que suelen definirse en:
- /layout/avisoCookies.xhtml
- /layout/avisoCookiesGestion.xhtml
- /layout/avisoPrivacidad.xhtml
- /layout/template.xhtml
En la carpeta /layout, creamos una copia del fichero template.xhtml y la renombramos como template_transient_view.xhtml. Y realizamos las siguientes modificaciones:
- Si se importa el fichero Javascript sessiontimer.js, a su componente <h:outputScript>, le añadimos rendered="#{not org.jboss.seam.web.session.fakeSession}"
- En la etiqueta <f:view> añadimos la propiedad transient con valor true.
- Si la página usa un componente <fdw:onloadScript> para realizar una invocación sobre sessionController, entonces en la línea anterior añadimos: <c:if test="#{not org.jboss.seam.web.session.fakeSession}">, que cerraremos en la línea posterior a la etiquete de cierre (</p:dialog>) del dialogo con ID noSesionDlg.
Modificamos el template (normalmente /layout/template.xhtml) por /layout/template_transient_view.xhtml usado en los ficheros:
- politicaCookies.xhtml
- politicaPrivacidad.xhtml
- error.xhtml
- error_cas.xhtml (esta página puede ser JSP, por lo que no se puede realizar el cambio a no ser que se actualice su contenido por la versión JSF)
Se puede crear una página en la raiz del módulo Web (carpeta /web/src/main/webapp), llamada portal.xhtml, con el siguiente contenido:
| Bloque de código | ||
|---|---|---|
| ||
<ui:composition template="/layout/template_transient_view.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:s="http://jboss.org/schema/seam/taglib"
xmlns:p="http://primefaces.org/ui"
xmlns:pe="http://primefaces.org/ui/extensions"
xmlns:fw="http://www.um.es/atica/fundeweb">
<ui:define name="page-title">#{messages['value.link.home']} - #{messages['application.title']}</ui:define>
<ui:define name="body">
<!-- CONTENIDO -->
<h1 class="titulo-pagina">Portal</h1>
<p:panel header="header" footer="footer" menuTitle="menuTitle"
toggleable="true" toggleTitle="toggleTitle" closable="true"
closeTitle="closeTitle">
<h:outputText value="Portal sin sesion web." />
<br/>
<p:link id="homeLink" outcome="home">
<i class="fa fa-home fa-4x" style="color:#B02129;"></i>
<br/>
<h:outputText value="#{messages['value.link.home']}" style="color:#B02129; text-decoration:underline;"/>
</p:link>
</p:panel>
</ui:define>
</ui:composition> |