struts2-rest-plugin - 在POST方法中传递Json对象

时间:2016-12-23 07:07:54

标签: rest post struts2

我正在使用Struts2-Rest-Plugin v2.3.1.2。 我需要编写一个POST REST方法,它将接收JSON对象作为请求并将JSON对象作为Response返回。 JSON字段作为null传递给Controller create()方法。

你能帮我解释为什么JSON字段被传递为NULL吗?

struts.xml中:

<constant name="struts.action.extension" value="xhtml,,xml,json,action" />
<constant name="struts.rest.content.restrictToGET" value="false" />
<constant name="struts.convention.action.suffix" value="Action, Controller" />
<constant name="struts.convention.action.mapAllMatches" value="true" />
<constant name="struts.convention.default.parent.package" value="rest-default" />
<constant name="struts.convention.package.locators" value="rest" />
<constant name="struts.mapper.class" value="org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper" />
<constant name="struts.mapper.prefixMapping" value="/api:rest,:struts" />
<constant name="struts.rest.namespace" value="/api" />
<constant name="struts.rest.defaultExtension" value="json" />


<package name="api" namespace="/api" extends="rest-default">
     <action name="registrations/*" class="com.sample.rest.RegistrationsController">
    </action> 
</package> 

RegistrationsController.Java:

package com.sample.rest;

import org.apache.struts2.rest.DefaultHttpHeaders;
import org.apache.struts2.rest.HttpHeaders;

import com.sample.rest.payload.RegistrationRequest;
import com.sample.rest.payload.RegistrationResponse;
import com.sample.service.RegistrationService;
import com.opensymphony.xwork2.ModelDriven;

public class RegistrationsController  implements ModelDriven<Object>{

    private RegistrationRequest request = new RegistrationRequest();
    private RegistrationResponse response = new RegistrationResponse();
    RegistrationService registerService = new RegistrationService();
    private String requestId;

    private Object model;


    // POST /api/registrations
        public HttpHeaders create() {
            response = registerService.registerProject(request);
            System.out.println("request : " + request.toString());
            model = response;
            System.out.println("POST \t /registrations" + request.getProjectDetails().getProjectId());
            return new DefaultHttpHeaders("create");
        }

        /**
         * 
         */
        public RegistrationsController() {
            super();
        }



    @Override
    public Object getModel() {
        return model;
    }

    /**
     * @return the registerService
     */
    public RegistrationService getRegisterService() {
        return registerService;
    }

    /**
     * @param registerService the registerService to set
     */
    public void setRegisterService(RegistrationService registerService) {
        this.registerService = registerService;
    }

    /**
     * @return the request
     */
    public RegistrationRequest getRequest() {
        return request;
    }

    /**
     * @param request the request to set
     */
    public void setRequest(RegistrationRequest request) {
        this.request = request;
    }

    /**
     * @return the requestId
     */
    public String getRequestId() {
        return requestId;
    }

    /**
     * @param requestId the requestId to set
     */
    public void setRequestId(String requestId) {
        this.requestId = requestId;
    }

}

来自控制台的结果:

  

request:RegistrationRequest [requestId = null,clientId = null,   timestamp = null,projectDetails = null]

谢谢和问候 萨姆

0 个答案:

没有答案