Stephan sounds as if the navigation may not be working
instead of annotations what happens if you use the *normal* struts.xml package
and action declarations e.g
<interceptors> <interceptor-stack name="guest" >
<interceptor-ref name="params">
<param
name="excludeParams">dojo\..*,^struts\..*,_.*</param>
</interceptor-ref>
</interceptor-stack> </interceptors>
<struts>......
<package name="NamespaceName" namespace="/" extends="struts-default">
<action name="myAction">
<result name="success">/success.jsp</result> <result
name="error">/error.jsp</result>
<interceptor ref-name="guest"/> </action> </package>
.....</struts>
Martin
> CC: [email protected]
> From: [email protected]
> Subject: Re: json data are not passed in Stuts action
> Date: Thu, 22 Nov 2012 06:20:38 +0530
> To: [email protected]
>
> Stephan,
>
> Are you sure your data is getting passed in request body as you are making an
> Ajax call ?
>
> On 21-Nov-2012, at 9:16 PM, Stephan Schreck <[email protected]>
> wrote:
>
> > Hello,
> > i have a problem with my struts 2 application. I try to send some json data
> > in my action from the following
> > script.
> >
> > <script>
> > $(document).ready(function () {
> >
> > var data = {data: {jsonKey1 : "one", jsonKey2: "two",
> > jsonKey3: [1, 2, 3, 4, 5], jsonKey4: {a: "A", b: 2, c: "3"}, jsonKey5: 2,
> > jsonKey6: "2"}};
> > jQuery.ajax(
> > {
> > type: "POST",
> > url: "http://localhost:8080/myAction",
> > data: jQuery.toJSON(data),
> > dataType: "json",
> > async: false ,
> > contentType: "application/json; charset=utf-8",
> > success: function(){window.alert("Done");}
> > });
> > });
> > </script>
> >
> >
> >
> > The action is called without any problem. What i am trying to achieve is to
> > send the data to my action and set the Map data. This is something
> > that does not work. In my struts.xml i have included the JSONInterceptor
> > in my stack, as seen below:
> >
> > ...
> > ...
> > <interceptor-ref name="scopedModelDriven" />
> > <interceptor-ref name="modelDriven" />
> > <interceptor-ref name="fileUpload" />
> > <interceptor-ref name="json" />
> > <interceptor-ref name="staticParams" />
> > <interceptor-ref name="actionMappingParams" />
> >
> > <interceptor-ref name="params">
> > <param
> > name="excludeParams">dojo\..*,^struts\..*,_.*</param>
> > </interceptor-ref>
> > ...
> > ...
> >
> >
> >
> > Here the action that is called while the script is running.
> >
> > @Injectable
> > @Result(name = "success", type = "json")
> > @ParentPackage("json-default")
> > public class MyAction extends BaseAction {
> >
> >
> > Map data = new HashMap();
> >
> > public String execute() throws Exception {
> >
> > return SUCCESS;
> > }
> >
> >
> > public Map getData() {
> > return data;
> > }
> >
> > public void setData(Map data) {
> > this.data = data;
> > }
> > }
> >
> >
> >
> > I have added some brakepoints in the JSONInterceptor. In there there is a
> > variable String contentType = request.getHeader("content-type");
> > The variable contentType seems to be always null. So maybe that is where
> > the problem starts from. The data sent are not
> > recognized as json data maybe.
> >
> > All in all and in a few lines, i am trying to send the data from the script
> > to my struts Action but it seems that i am missing something
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [email protected]
> > For additional commands, e-mail: [email protected]
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>