2017-10-03 12 views
-1

私は非常に新しいJavaですので、この問題は重複しているようですが、私はすでにこの問題を一日過ごしました。だから私は今、解決策やガイドラインが必要です。POSTリクエストでパラメータを受け取ることができません、Spring - java

フロントエンドからウェブサービス経由で投稿パラメータを受け取ろうとしていますが、値を受け取ることができません。 Webサービスを呼び出すために

<form role="form" id="" name="" method="post"> 
    <div class="form-group associateTypeFormGroup"> 
     <label class="control-label">Associate Type : </label> 
     <select class="form-control associateType" id="associateType" name="associateType"> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
      <option value="4">4</option> 
     </select> 
    </div> 
    <div class="form-group datasetNameFormGroup"> 
     <label class="control-label">Dataset Name : </label> 
     <input type="text" class="form-control" name="datasetName" id="datasetName" /> 
    </div> 
    <div class="form-group daterangeFormGroup"> 
     <label class="control-label">Date Range : </label> 
     <input type="text" class="form-control daterange" name="daterange" id="daterange" data-time-picker="true" data-time-picker-increment="5" data-format="YYYY-MM-DD h:mm:ss A"> 
    </div> 
    <div class="form-group listaFormGroup"> 
     <label class="control-label">List A : </label> 
     <textarea class="form-control" id="lista" name="lista"></textarea> 
    </div> 
    <div class="form-group listbFormGroup"> 
     <label class="control-label">List B : </label> 
     <textarea class="form-control" id="listb" name="listb"></textarea> 
    </div> 
    <div class="form-group minimumCallingFormGroup" style="display:none;"> 
     <label class="control-label">Minimum Calling : </label> 
     <select class="form-control" id="minimumCalling" name="minimumCalling"> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
     </select> 
    </div> 
    <div class="form-group"> 
     <input type="button" class="btn btn-success" value="SUBMIT" onclick="return get_values(this);" /> 
    </div> 
</form> 

JS機能:

は、これは私のHTMLのFORMである

function get_values() { 

    associateType = $("#associateType").find(":selected").val(); 
    datasetName = $("#datasetName").val(); 
    startdate = $('#daterange').data('daterangepicker').startDate.toISOString().split('.')[0] + "Z"; 
    enddate = $('#daterange').data('daterangepicker').endDate.toISOString().split('.')[0] + "Z"; 
    if ($("#lista").val() != "") 
     lista = '\'' + $("#lista").val().split(',').join('\',\'') + '\''; 
    if ($("#listb").val() != "") 
     listb = '\'' + $("#listb").val().split(',').join('\',\'') + '\''; 
    minimumCalling = $('#minimumCalling').find(":selected").val(); 

    var cdrReqParams = {}; 
    cdrReqParams.associateType = associateType; 
    cdrReqParams.datasetName = datasetName; 
    cdrReqParams.fromDate = startdate; 
    cdrReqParams.toDate = enddate; 
    cdrReqParams.listA = lista; 
    cdrReqParams.listB = listb; 
    cdrReqParams.minimumCalling = minimumCalling; 
    var jsonStr = JSON.stringify(cdrReqParams); 
    API.call("save_associate.json", 'POST', function(data) { 
     console.log(data); 
    }, function(error) { 
     console.log(error); 
    }, jsonStr); 

} 

私のコントローラ

@RestController 
public class AssociateController { 
    @RequestMapping(value = "/associate", method = RequestMethod.GET) 
    public ModelAndView associateIndex() { 
     ModelAndView mav = null; 
     mav = new ModelAndView("associate.html"); 
     return mav; 
    } 

    @Layout(Layout.NONE) 
    @RequestMapping(value = "/save_associate.json", method = RequestMethod.POST) 
    public @ResponseBody AjaxResponseBody save_associate(HttpServletRequest request, Model model) throws Exception { 

     AssociateParams params = new AssociateParams(); 

     try { 
      params.setAssociateType(request.getParameter("associateType")); 
      params.setDatasetName(request.getParameter("datasetName")); 
      params.setFromDate(request.getParameter("fromDate")); 
      params.setToDate(request.getParameter("toDate")); 
      params.setListA(request.getParameter("listA")); 
      params.setListB(request.getParameter("listB")); 
      params.setMinimumCalling(request.getParameter("minimumCalling")); 

      System.out.println("+++ Associate Controller +++"); 
      System.out.println(params.getAssociateType()); 
      System.out.println(params.getDatasetName()); 
      System.out.println(params.getFromDate()); 
      System.out.println(params.getToDate()); 
      System.out.println(params.getListA()); 
      System.out.println(params.getAssociateType()); 
      System.out.println(params.getAssociateType()); 

     } catch(Exception e){ 
      e.printStackTrace(); 
     } 
     finally{ 
      //dbHelper.closeDBConnection(conn); 
     } 
     return null; 

    } 
} 

Associateparams.java

public class AssociateParams { 
    private String associateType; 
    private String datasetName; 
    private String fromDate; 
    private String toDate; 
    private String listA; 
    private String listB; 
    private String minimumCalling; 

    public String getAssociateType() { 
     return associateType; 
    } 
    public void setAssociateType(String associateType) { 
     this.associateType = associateType; 
    } 
    public String getDatasetName() { 
     return datasetName; 
    } 
    public void setDatasetName(String datasetName) { 
     this.datasetName = datasetName; 
    } 
    public String getFromDate() { 
     return fromDate; 
    } 
    public void setFromDate(String fromDate) { 
     this.fromDate = fromDate; 
    } 
    public String getToDate() { 
     return toDate; 
    } 
    public void setToDate(String toDate) { 
     this.toDate = toDate; 
    } 
    public String getListA() { 
     return listA; 
    } 
    public void setListA(String listA) { 
     this.listA = listA; 
    } 
    public String getListB() { 
     return listB; 
    } 
    public void setListB(String listB) { 
     this.listB = listB; 
    } 
    public String getMinimumCalling() { 
     return minimumCalling; 
    } 
    public void setMinimumCalling(String minimumCalling) { 
     this.minimumCalling = minimumCalling; 
    } 
} 

私は、すべてのポストパラメータで、私はここで間違ってやっているものを任意のアイデアをnullを受けますか? は、私は、ブラウザとサービスのネットワークタブを見てきました(正しく

API.CALL機能

var API = { 
    call:function(url,type,successcallback,errorCallback,data){ 
    var data = (!!data) ? data : {}; 
    var callback = (!!callback) ? callback : function(){}; 
    $.ajax({ 
     contentType : "application/json", 
     dataType: "json", 
     //crossDomain: true, 
     xhrFields: { withCredentials: true }, 
     url: url, 
     data:data, 
     type:type, 
     success:successcallback, 
     error:errorCallback 
    });  
    } 
} 
+0

API.callを必要なすべてのデータを送信しています)この機能を探検する? – shivam

+0

@shivamが私の質問で更新されました –

+0

コンソールでjsonStrの値が問題になっていると思われるので問題ありません。 – shivam

答えて

1

春コントローラコード

@RequestMapping(value = "/save_associate.json", method = RequestMethod.POST) 
    public @ResponseBody String save_associate(@RequestBody AssociateParams associateParams , HttpServletRequest request) { 
      String asscociateType = associateParams.getAssociateType(); 

      // For other parameters use as abaove 
      // your logic next 
     } 
関連する問題