Bonjour j'ai un site (un annuaire) dans lequel on peut inscrire son site, quand on clique sur "ajouter un site" le ManagedBean teste si l'utilisateur est connecté, si non il le redirige vers une autre page.
Seulement ça ne passe pas mes log me disent que la réponse à déjà été envoyé, pourtant j'utilise la même technique sur mon site d'échange de liens (réutilisation du code même) et là ça marche.
Voici mon code :
La vue /WEB-INF/base/add_site.xhtml
La vue (inclusion du fichier /WEB-INF/pages/add_site.xhtml):
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 <ui:composition template="/WEB-INF/#{deviceDetector.path}/template.xhtml" xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:pm="http://primefaces.org/mobile" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> <ui:define name="title">Ajouter un site dans l'annuaire - #{datas.SITENAME}</ui:define> <ui:define name="description"> <meta name="description" content="#{datas.SITENAME}, Ajoutez votre site dans l'annuaire." /> </ui:define> <ui:define name="content" rendered="#{deviceDetector.model==0}"> <ui:include src="/WEB-INF/pages/add_site.xhtml" /> </ui:define> <ui:define name="mobile_body" rendered="#{deviceDetector.model==1}"> <ui:include src="/WEB-INF/mobile_pages/soon.xhtml" /> </ui:define> </ui:composition>
Enfin mon Managed Bean AddSite.java
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
73
74
75
76
77
78
79
80
81 <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:p="http://primefaces.org/ui" xmlns:f="http://xmlns.jcp.org/jsf/core"> <h:panelGroup layout="block" class="ui-messages-error" rendered="#{addSite.test==2}"> <span class="ui-messages-error-icon"></span> <span class="ui-messages-error-summary">Erreur !</span> <p class="ui-messages-error-detail"><h:outputText value="#{addSite.errorMsg}" escape="false"/></p> </h:panelGroup> <p:panel header="Ajouter un site" rendered="#{addSite.test!=2}"> <h:panelGroup layout="block" class="ui-messages-info"> <span class="ui-messages-info-icon"></span> <span class="ui-messages-info-summary">Info : </span> <p class="ui-messages-info-detail">Avant de remplir le formulaire, veuillez lire ceci :<br/> tout d'abord nous n'acceptons pas tous les sites, les sites douteux seront écartés, à savoir les sites pornos, les sites sur les armes, la politiques, la religion, les drogues ... les sites qui promeuvent les comportements illégaux.<br/> Si vous pensez que votre site ne fait pas parti de cette liste noire, soumettez votre site, sinon ne perdez pas votre temps.</p> </h:panelGroup> <br/> <h:form id="form"> <p:fieldset legend="Ajouter un site"> <p:tooltip for="categories" value="Jusqu'à #{datas.NBMAXCATEGORY} catégories, choisissez ou ajoutez les votres." showEffect="drop" hideEffect="drop"/> <p:tooltip for="description" value="De #{datas.DESCSITEMINLEN} à #{datas.DESCSITEMAXLEN} caractères." showEffect="drop" hideEffect="drop"/> <p:messages autoUpdate="false" globalOnly="true" closable="true" showDetail="true" showIcon="true" showSummary="true" escape="false" severity="error"/> <p:messages autoUpdate="false" globalOnly="true" closable="true" showDetail="true" showIcon="true" showSummary="true" escape="false" severity="info"/> <h:panelGrid columns="3"> <p:outputLabel for="titre" value="Titre de votre site : "/> <p:inputText id="titre" value="#{addSite.titre}" required="true" requiredMessage="Champ vide" size="#{datas.TITLESITEMAXLEN}" maxlength="#{datas.TITLESITEMAXLEN}" placeholder="#{datas.TITLESITEMINLEN} à #{datas.TITLESITEMAXLEN} caractères" validator="titreSiteValidator"/> <p:message for="titre" severity="error"/> <p:outputLabel for="url" value="URL de votre site : "/> <h:panelGroup layout="block"> <p:selectOneMenu id="protocol" required="true" requiredMessage="Choisissez une option" validator="protocolValidator" class="inline_block align_middle" value="#{addSite.protocol}"> <f:selectItem itemLabel="http://" itemValue="0"/> <f:selectItem itemLabel="https://" itemValue="1"/> </p:selectOneMenu> <p:inputText id="url" type="url" value="#{addSite.url}" required="true" requiredMessage="Champ vide" size="50" maxlength="#{datas.URLSITEMAXLEN}" placeholder="Adresse de votre site" validator="urlSiteValidator" class="inline_block align_middle"/> </h:panelGroup> <h:panelGroup layout="block"> <p:message for="protocol" severity="error"/> <p:message for="url" severity="error"/> </h:panelGroup> <h:panelGroup layout="block"> <p:outputLabel for="description" value="Courte description de votre site : "/> <br/> <h:outputText id="display"/> </h:panelGroup> <p:inputTextarea id="description" value="#{addSite.description}" cols="100" rows="15" maxlength="#{datas.DESCSITEMAXLEN}" placeholder="#{datas.DESCSITEMINLEN} à #{datas.DESCSITEMAXLEN} caractères" counterTemplate="{0} caractère(s) restant." counter="display" validator="descriptionSiteValidator" required="true" requiredMessage="Champ vide"/> <p:message for="description" severity="error"/> <p:outputLabel for="categories" value="Catégories de votre site : "/> <p:autoComplete id="categories" multiple="true" value="#{addSite.categories.categories}" size="50" maxlength="50" maxResults="#{datas.NBMAXCATEGORY}" completeMethod="#{addSite.categories.complete}" required="true" requiredMessage="Champ vide" forceSelection="true" validator="addCategoriesValidator" placeholder="#{datas.NBMAXCATEGORY} max" converter="categoryConverter" var="category" itemLabel="#{category.name}" itemValue="#{category}"> <p:ajax event="itemUnselect" update="categories"/> <p:ajax event="itemSelect" update="categories"/> </p:autoComplete> <h:panelGroup layout="block"> <p:commandButton icon="ui-icon-trash" value="VIDER" action="#{addSite.categories.emptyCategories()}" update="categories" partialSubmit="true" process="@this"/> <br/> <p:message for="categories" severity="error"/> </h:panelGroup> <p:commandButton value="Valider" action="#{addSite.actionValidate()}" update="@form" icon="fa fa-check-circle"/> </h:panelGrid> </p:fieldset> </h:form> </p:panel> </ui:composition>
J'avoue que je bloque un peu, comme je disais sur mon autre site ça marche bien, le code est identique.
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
73
74
75
76
77
78
79
80
81
82
83 package beans; import classes.MyException; import classes.Site; import java.io.IOException; import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.PostConstruct; import javax.faces.bean.ManagedBean; import javax.faces.bean.ViewScoped; import javax.naming.NamingException; /** * * @author pj */ @ManagedBean @ViewScoped public class AddSite extends Site implements Serializable { /** * Creates a new instance of AddSite */ public AddSite() { } @PostConstruct public void postConstruct() { try { user.testConnection(); if (user.getTest() == 3) { test = 2; createCookie("cookie_status", "1"); setHTTP(); facesContext.getExternalContext().redirect(response.encodeRedirectURL("/pas-connecte.html")); } } catch (SQLException ex) { Logger.getLogger(AddSite.class.getName()).log(Level.SEVERE, null, ex); sqlException(ex); } catch (MyException ex) { Logger.getLogger(AddSite.class.getName()).log(Level.SEVERE, null, ex); myException(ex); } catch (NamingException ex) { Logger.getLogger(AddSite.class.getName()).log(Level.SEVERE, null, ex); namingException(ex); } catch (IOException ex) { Logger.getLogger(AddSite.class.getName()).log(Level.SEVERE, null, ex); ioException(ex); } finally { closeConnection(); } } public void actionValidate() { try { record(); createCookie("ids", id + ""); setHTTP(); facesContext.getExternalContext().redirect(response.encodeRedirectURL("/soumission.html")); } catch (SQLException ex) { Logger.getLogger(AddSite.class.getName()).log(Level.SEVERE, null, ex); sqlException(ex); } catch (NamingException ex) { Logger.getLogger(AddSite.class.getName()).log(Level.SEVERE, null, ex); namingException(ex); } catch (MyException ex) { Logger.getLogger(AddSite.class.getName()).log(Level.SEVERE, null, ex); myException(ex); } catch (UnsupportedEncodingException ex) { Logger.getLogger(AddSite.class.getName()).log(Level.SEVERE, null, ex); unsupportedEncodingException(ex); } catch (IOException ex) { Logger.getLogger(AddSite.class.getName()).log(Level.SEVERE, null, ex); ioException(ex); } finally { closeConnection(); } } }
Merci.
Partager