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
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
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.
dans mon managedBean j'ai testé ça
j'ai récupérer GET
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 HttpServletRequest request = (HttpServletRequest) context .getExternalContext().getRequest(); System.out.println(request.getMethod());
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.
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
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>
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.
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();
voilà la declaration de mon bean dans faces-config
NB:j'utilise Spring dans mon application
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>
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
Partager