IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Pb avec les balises <ui:include>


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 498
    Billets dans le blog
    5
    Par défaut Pb avec les balises <ui:include>
    Bonjour, dès que j'ajoute Spring Sécurité à mon projet: j'ai une erreur.

    mon web.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app id="WebApp_ID" version="3.0"
     xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
     <!-- Application -->
     <display-name>Test</display-name>
     
     <welcome-file-list>
      <welcome-file>lanceur.jsp</welcome-file>
     </welcome-file-list>
     
     <!--    Spring    -->
     <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
     </listener>
     <listener>
      <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
     </listener>
     
     <context-param>
      <param-name>contextConfigLocation</param-name>
      <!-- Chargement de tout fichier xml commençant par applicationContext -->
      <param-value>/WEB-INF/applicationContext*.xml</param-value>
     </context-param>
     
     <!-- spring Security -->
     <filter>
         <filter-name>springSecurityFilterChain</filter-name>
         <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
     </filter>
     <filter-mapping>
         <filter-name>springSecurityFilterChain</filter-name>
         <url-pattern>/*</url-pattern>
    </filter-mapping>
     
    <context-param>
    	<param-name>javax.faces.FACELETS_LIBRARIES</param-name>
    	<param-value>/WEB-INF/jsf-tag/springsecurity.taglib.xml</param-value>
    </context-param>
     
     <!-- Spring log -->
     <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>
     
     
     <!-- Session configuration -->
     <session-config>
     	<session-timeout>60</session-timeout>
     </session-config>
     
     <!-- JSF -->
     <servlet>
      <servlet-name>Faces Servlet</servlet-name>
      <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
     </servlet>
     <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>*.xhtml</url-pattern>
     </servlet-mapping> 
     <!-- reload , ne pas commiter-->
     <context-param>
     	<param-name>javax.faces.FACELETS_REFRESH_PERIOD</param-name>
     	<param-value>10</param-value>
     </context-param>
     <context-param>
     	<param-name>facelets.DEVELOPMENT</param-name>
     	<param-value>true</param-value>
     </context-param> 
    </web-app>
    Le fichier de configuration pour la sécurité:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?xml version="1.0" encoding="UTF-8"?>
    <beans:beans xmlns="http://www.springframework.org/schema/security"
    	xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    		http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">
     
    	<http auto-config="true">
    		<intercept-url pattern="/**" access="ROLE_USER"/>
    		<intercept-url pattern="/**" access="ROLE_ADMIN"/>
    	</http>
     
    	<authentication-manager alias="authenticationManager">
    		<authentication-provider>
     
    			<user-service>
    				<user name="admin" password="admin" authorities="ROLE_ADMIN"/>
    				<user name="user" password="user" authorities="ROLE_USER"/>
    			</user-service>
     
    		</authentication-provider>
    	</authentication-manager>
    </beans:beans>
    Le fichier de tag JSF (pour Spring sécurité):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    <?xml version="1.0"?>
    <!DOCTYPE facelet-taglib PUBLIC
      "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
      "http://java.sun.com/dtd/facelet-taglib_1_0.dtd">
    <facelet-taglib>
    	<namespace>http://www.springframework.org/security/tags</namespace>
    	<tag>
    		<tag-name>authorize</tag-name>
    		<handler-class>org.springframework.faces.security.FaceletsAuthorizeTagHandler</handler-class>
    	</tag>
    	<function>
    		<function-name>areAllGranted</function-name>
    		<function-class>org.springframework.faces.security.FaceletsAuthorizeTagUtils</function-class>
    		<function-signature>boolean areAllGranted(java.lang.String)</function-signature>
    	</function>
    	<function>
    		<function-name>areAnyGranted</function-name>
    		<function-class>org.springframework.faces.security.FaceletsAuthorizeTagUtils</function-class>
    		<function-signature>boolean areAnyGranted(java.lang.String)</function-signature>
    	</function>
    	<function>
    		<function-name>areNotGranted</function-name>
    		<function-class>org.springframework.faces.security.FaceletsAuthorizeTagUtils</function-class>
    		<function-signature>boolean areNotGranted(java.lang.String)</function-signature>
    	</function>
    	<function>
    		<function-name>isAllowed</function-name>
    		<function-class>org.springframework.faces.security.FaceletsAuthorizeTagUtils</function-class>
    		<function-signature>boolean isAllowed(java.lang.String, java.lang.String)</function-signature>
    	</function>
    </facelet-taglib>
    Et la page XHTML à afficher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:f="http://java.sun.com/jsf/core"
          xmlns:ui="http://java.sun.com/jsf/facelets"
          xmlns:p="http://primefaces.org/ui"
          xmlns:security="http://www.springframework.org/security/tags">
     
          <f:view locale="#{homeSession.locale}">
     
    		<f:loadBundle var="resHome" basename="#{homeSession.resource}"/>
     
    			<h:head>
    			</h:head> 
     
    			<h:body>
    				<!-- Menu -->
    				<p:outputPanel id="form_panel">
    					<ui:insert>	
    						<security:authorize ifAnyGranted="ROLE_ADMIN,ROLE_USER">
    							<ui:include src="/html/include/menu.xhtml"/>
    						</security:authorize>
    					</ui:insert>
    				</p:outputPanel>
     
    				<!-- Formulaire -->
    				<p:outputPanel id="body_panel">
     
    					<!-- Gestion du calendrier -->
    					<p:outputPanel id="gestion_du_calendrier_panel" rendered="#{homeSession.isGestionDuCalendrier}">
    						<h:outputText value="Gestion du calendrier" />
    					</p:outputPanel>
     
    					<!-- Gestion des remises -->
    					<p:outputPanel id="gestion_des_remise_panel" rendered="#{homeSession.isGestionDesRemises }">
    						<h:outputText value="Gestion des remises" />
    					</p:outputPanel>
     
    					<!-- Gestion des devises -->
    					<p:outputPanel id="gestion_des_devises_panel" rendered="#{homeSession.isGestionDesDevises}">
    						<h:outputText value="Gestion des devises" />
    					</p:outputPanel>
     
    					<!-- Gestion de la main d'oeuvre -->
    					<p:outputPanel id="gestion_de_la_main_oeuvre_panel" rendered="#{homeSession.isGestionDeLaMainOeuvre}">
    						<h:outputText value="Gestion de la main d'oeuvre" />
    					</p:outputPanel>
    				</p:outputPanel>
     
    			</h:body> 
    	</f:view>	
    </html>
    La ligne qui pose problème, car quand elle est là, plus rien ne marche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <ui:include src="/html/include/menu.xhtml"/>
    l'erreur dans Eclipse quand on lance JBoss 7:
    Et en analysant en debbugger le code, on a:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    requestContext.getViewScope().put(SERIALIZED_VIEW_STATE, view);
    requestcontext est null.
    Il est donné par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RequestContext requestContext = RequestContextHolder.getRequestContext();
    si quelqu'un a une idée, merci d'avance.

  2. #2
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 498
    Billets dans le blog
    5
    Par défaut
    Dans la page à inclure, je mets une balise <h:form>

    Si j'enlève la balise <h:form/>, le résultat est correct.

    On avance dans la résolution du problème....

Discussions similaires

  1. [TinyMCE] Tinymce Problème de formatage avec les balises <ul> et <li>
    Par rasdri dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 06/02/2008, 16h13
  2. problème avec les balises php
    Par Mydriaze dans le forum Langage
    Réponses: 2
    Dernier message: 15/06/2007, 13h09
  3. [DOM] Pb avec les "BALISE vide"
    Par PhalconX dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 18/06/2005, 23h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo