struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave Newton <davelnew...@gmail.com>
Subject Re: Doest struts 2 accept “POST” method to send data from javascript to an Action server?
Date Fri, 16 Dec 2011 14:40:45 GMT
Please follow up on your stackoverflow post as well. You need to provide
more information when you ask your questions there.

On Fri, Dec 16, 2011 at 9:28 AM, José Manuel Sendín Cruz <
jmanuel.sendin.cruz@gmail.com> wrote:

> Solved. My mistake by sending wrong datatype. Content-Type must be
> application/x-www-form-urlencoded.
>
> Thank you.
>
> 2011/12/16 José Manuel Sendín Cruz <jmanuel.sendin.cruz@gmail.com>
>
> > Hello Maurizio, thanks.
> >
> > Headers sended as "GET" are:
> >
> > Host localhost:8080User-AgentMozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0)
> > Gecko/20100101 Firefox/8.0 Acceptapplication/json, text/javascript, */*;
> > q=0.01 Accept-Languagees-es,es;q=0.8,en-us;q=0.5,en;q=0.3
> Accept-Encodinggzip,
> > deflateAccept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7Connection keep-alive
> > Content-Typeapplication/json; charset=utf-8
> X-Requested-WithXMLHttpRequest
> > Refererhttp://localhost:8080/Aplicacion/prueba.jsp Cookie
> > JSESSIONID=A650C235C78B2657B14534363D938F80
> >
> > And parameters are sended as:
> >
> > customData someinfojgGridData[{"id":"1","direccion":"Calle del Pardo
> > 3","nombre":"Paco1"},{"id":"2","direccion":"Calle del Pardo
> 2","nombre":"Paco2"},{"id":"3","direccion":"Calle
> > del Pardo 1","nombre":"Paco3"}]
> > So, it seems be ok. Not as POST:
> >
> >
> > Headers sended as "POST" are:
> > Hostlocalhost:8080User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0)
> > Gecko/20100101 Firefox/8.0Accept application/json, text/javascript, */*;
> > q=0.01Accept-Languagees-es,es;q=0.8,en-us;q=0.5,en;q=0.3
> Accept-Encodinggzip,
> > deflate Accept-CharsetISO-8859-1,utf-8;q=0.7,*;q=0.7Connection keep-alive
> > Content-Typeapplication/json; charset=utf-8
> X-Requested-WithXMLHttpRequest
> > Refererhttp://localhost:8080/AplicacionDiet99/prueba.jsp
> Content-Length334
> > CookieJSESSIONID=A650C235C78B2657B14534363D938F80
> > And parameters!!!:
> >
> >
> >
> jgGridData=%5B%7B%22id%22%3A%221%22%2C%22direccion%22%3A%22Calle+del+Pardo+3%22%2C%22nombre%22%3A%22Paco1
> >
> %22%7D%2C%7B%22id%22%3A%222%22%2C%22direccion%22%3A%22Calle+del+Pardo+2%22%2C%22nombre%22%3A%22Paco2
> >
> %22%7D%2C%7B%22id%22%3A%223%22%2C%22direccion%22%3A%22Calle+del+Pardo+1%22%2C%22nombre%22%3A%22Paco3
> > %22%7D%5D&customData=someinfo
> >
> > So, you might be right. How can I send as GET format by POST method?
> >
> >
> >
> > 2011/12/16 Maurizio Cucchiara <maurizio.cucchiara@gmail.com>
> >
> >> I'm not sure, but if I recall correctly that could be an encoding issue.
> >> In such case firebug plugin or chrome console might be very usefull.
> >>
> >> Sent from my mobile device, so please excuse typos and brevity.
> >>
> >> Maurizio Cucchiara
> >>
> >> Il giorno 16/dic/2011 12.23, "José Manuel Sendín Cruz" <
> >> jmanuel.sendin.cruz@gmail.com> ha scritto:
> >>
> >> > [I tried to simplifie the code to better understand the
> questions]When I
> >> > tried to send data from a web side client to an ActionClass in Struts
> 2
> >> > like:
> >> >
> >> > CLIENT SIDE:
> >> > -----------------------------------------
> >> >    jQuery("#bedata").click(function(){ //Function for button "bedata"
> >> >
> >> >     var postData = "SOME DATA TO SEND"
> >> >
> >> >    //Sendin data:
> >> >    $.ajax({
> >> >        type: "POST", //Method to send the data. I would need "post"
> >> method
> >> > as better option.
> >> >        url: "GuardaFila.action", //Action called to data treatament
> >> >        data : {
> >> >            jgGridData: postData, //PARAMETER jgGrdData with variable
> >> > "postData" value
> >> >            customData: "someinfo" //Just another parameter called
> >> > "customData" with more data,
> >> >        },
> >> >
> >> >
> >> >    /** START: handlers for request. Not important for this trouble **/
> >> >        dataType:"json",
> >> >        contentType: "application/json; charset=utf-8",
> >> >        success: function(response, textStatus, xhr) {
> >> >            alert("success");
> >> >         },
> >> >        error: function(xhr, textStatus, errorThrown) {
> >> >            alert("error");
> >> >        }
> >> >    /** END: handlers for the request. **/
> >> >    });
> >> >    });
> >> >
> >> >
> >> > ----------
> >> >
> >> >
> >> > I wanted to autofill "jgGridData" and "customData" attributes from
> >> > ActionClass that is called when "CargaTabla.action" is invoked. But if
> >> type
> >> > is POST, it doesnt work.
> >> > Just changing POST type in ajax type of sending, turning on "GET", it
> >> works
> >> > fine. The call to CargaTabla.action ActionClass setters methods for
> the
> >> > jgGridData and customData has done properly.
> >> >
> >> >
> >> >
> >> > SERVER SIDE:
> >> > My struts.xml piece of significant code is:
> >> >
> >> >    <action name="GuardaFila" method="guardarUsuario"
> >> > class="org.json.JSONRespuestaTabla">
> >> >        <result name="success" type="json" />
> >> >    </action>
> >> >
> >> > So, GuardaFila action in its method "guardarUsuario" is properly
> called
> >> in
> >> > debuggin. A simplified version of ActionClass
> >> (org.json.JSONRespuestaTabla)
> >> > is:
> >> >
> >> > public class JSONRespuestaTabla extends ActionSupport{
> >> >
> >> >    String jgGridData = "Old data to be refilled from client";
> >> >    String customData = "Old data to be refilled from client";
> >> >
> >> >    @Override
> >> >    public String execute() {
> >> >        //Some stuff
> >> >        return SUCCESS;
> >> >    }
> >> >
> >> >    //Getters and Setter of attributes.
> >> >
> >> >    public void setJgGridData(String resultado){
> >> >        System.out.append(resultado);
> >> >    }
> >> >    public String getJgGridData(){
> >> >        return this.jgGridData
> >> >    }
> >> >    public String getCustomData() {
> >> >        return customData;
> >> >    }
> >> >    public void setCustomData(String customData) {
> >> >        this.customData = customData;
> >> >    }
> >> >
> >> >    //And the method called and defined in struts.xml (properly called)
> >> >    public void guardarUsuario(){
> >> >       //Some stuff.
> >> >       return;
> >> >    }
> >> >
> >> > Well, so. If Javascript send the parameters in GET mode, SETTERS are
> >> > working nice, and I can get "SOME DATA TO SEND" on my ActionClass
> >> > JSONRespuestaTabla setted automatically, ready to work with. But if
> >> > JavaScript sends this data in POST mode, Struts doesnt call the
> setters,
> >> > and I am not able to recieve the data into the class that handle the
> >> > action.
> >> >
> >> > How it comes that? I cant understand why it happens.
> >> >
> >> > I am using jquery, json and tiles plugin for struts2.
> >> >
> >> > Thank you for your help.
> >> >
> >>
> >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message