Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

...


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