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

JSF Java Discussion :

forcer l'utilisation de la méthode POST <h:form..


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 14
    Par défaut forcer l'utilisation de la méthode POST <h:form..
    Salut,

    Je veux forcer la method dans l'objet HttpServletRequest à "POST" au lieu de "GET"
    NB:pas d'attribut method dans la balise <h:form>

    merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2008
    Messages : 79
    Par défaut
    Si mes souvenirs sont bons, je crois que toutes données envoyées du client au serveur via l'attribut <h:form> se fait forcément en POST.

  3. #3
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 14
    Par défaut
    dans mon managedBean j'ai testé ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    HttpServletRequest request = (HttpServletRequest) context
    			.getExternalContext().getRequest();
    System.out.println(request.getMethod());
    j'ai récupérer GET

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2008
    Messages : 79
    Par défaut
    Mais dans ta balise <h:form> tu as des balise du genre <h:input> ? Tu peux nous fournir ta page JSF s'il te plait.

  5. #5
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 14
    Par défaut
    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
     
    <h:form id="campaign"  >
     
     
    					<ice:panelGroup
    						style="background-color: #F9F6F6;width:815px;border: 1px solid #D9D9D9;text-align: left ">
    						<ice:panelGrid columns="2" cellspacing="3">
    							<ice:panelGrid columns="2" cellspacing="3" style="width:500px">
    								<span><ice:outputLabel value="Nom"
    									style="font:14px Arial ;color: #000000" /><span
    									style="color: red">*</span></span>
    								<ice:selectInputText id="AutoCmpTxtFace"
    									rows="#{salesBean.selectedLength}" width="300"
    									value="#{salesBean.selectedAccountValue}"
    									valueChangeListener="#{salesBean.selectInputValueChanged}"
    									listVar="acc"
    									listValue="#{salesBean.accountMatchPossibilities}">
    									<f:facet name="selectInputText">
    										<ice:panelGrid columns="3"
    											columnClasses="cityCol,stateCol,zipCol">
    											<ice:outputText id="AutoCmpCty" value="#{acc.name}" />
     
    											<ice:outputText id="AutoCmpCty" value="#{acc.category}" />
     
    										</ice:panelGrid>
    									</f:facet>
     
    								</ice:selectInputText>
     
     
    							</ice:panelGrid>
     
     
    <ice:panelGrid columns="3" visible="#{productBean.popVisible}">
    							<ice:commandButton value="Confirmer" 
    								action="#{salesBean.generateDevisPDF}" style="width: 100px" />
    							<ice:commandButton value="Annuler"
    								onclick="javascript:show_alert();" style="width: 100px" />
    						</ice:panelGrid>
    </h:form>
    C'est un peut compliqué mais de toute façon ce n'est autre qu'un formulaire JSF simple avec des inputs et un bouton pour générer un PDF

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2008
    Messages : 79
    Par défaut
    Ok. Alors tu n'as pas besoin d'utiliser l'Objet HttpServletRequest pour récuperer la valeur des tes inputs. Il suffit juste de récupérer la valeur directement via les attributs de ton management bean.

  7. #7
    Membre éprouvé Avatar de juridakus
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 82
    Par défaut
    Citation Envoyé par ii.abbassi Voir le message
    [code]
    C'est un peut compliqué mais de toute façon ce n'est autre qu'un formulaire JSF simple avec des inputs et un bouton pour générer un PDF
    Essaie un peu ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    FacesContext context = FacesContext.getCurrentInstance();
    ExternalContext ectx = context.getExternalContext();
    ...
    HttpServletResponse response = (HttpServletResponse) ectx.getResponse();
     
     
    response.setContentLength(bytes.length);
    response.getOutputStream().write(bytes);
    response.setContentType("application/pdf");
    context.responseComplete();

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par ii.abbassi Voir le message
    dans mon managedBean j'ai testé ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    HttpServletRequest request = (HttpServletRequest) context
    			.getExternalContext().getRequest();
    System.out.println(request.getMethod());
    j'ai récupérer GET
    h:form envoi toujours les formulaire en POST. Donc ce bout de code, je serais curieux de savoir comemnt et où tu l'utilise. On peux voir l'action de #{salesBean.generateDevisPDF}, comment tu appelle ton bean pour en arriver à recevoir un GET??

  9. #9
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 14
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    h:form envoi toujours les formulaire en POST. Donc ce bout de code, je serais curieux de savoir comemnt et où tu l'utilise. On peux voir l'action de #{salesBean.generateDevisPDF}, comment tu appelle ton bean pour en arriver à recevoir un GET??
    voilà la declaration de mon bean dans faces-config
    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
     
    <managed-bean>
    		<description>
    			Backing bean for sales.
            </description>
    		<managed-bean-name>salesBean</managed-bean-name>
    		<managed-bean-class>
    			view.bean.Sales.SalesBean
            </managed-bean-class>
    		<managed-bean-scope>request</managed-bean-scope>
     
    		<managed-property>
    			<property-name>serviceLocator</property-name>
    			<value>#{serviceLocatorBean}</value>
    		</managed-property>
    	</managed-bean>
    NB:j'utilise Spring dans mon application

  10. #10
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ca ne nous avance a rien, ce qui est intéressante c'est de savoir
    -> où se trouve le code qui te sort que c'est un post (parce que "dans mon managedBean", c'est vague)
    -> qu'est-ce que tu fait pour déclencher l'exécution dudit code
    -> ce qu'il y a dans ta méthode d'action de ton form

Discussions similaires

  1. [2.x] Formulaire n'utilisant pas la méthode POST
    Par iKass dans le forum Symfony
    Réponses: 11
    Dernier message: 30/08/2012, 17h07
  2. Réponses: 0
    Dernier message: 26/02/2009, 19h36
  3. Réponses: 20
    Dernier message: 19/09/2006, 20h52
  4. Formulaire utilisant la méthode POST + popup
    Par Hell dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 27/10/2004, 13h34
  5. [HTTP] Syntaxe méthode POST
    Par Gruik dans le forum Développement
    Réponses: 3
    Dernier message: 26/07/2003, 17h12

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