2016-02-25 6 views
2

Я планирую опубликовать всю информацию о форме в формате JSON для Struts2 Action. Ниже приведены мои фрагменты кода. Исправьте меня, когда я ошибаюсь или помогу мне, чтобы я мог правильно загрузить все значения в файле Action. Все мои СОП в файле действий отображается как nullПередача сериализации массива на struts2 action

var MyForm = $("#companyform").serializeArray(); 
    var data = JSON.stringify(MyForm); 


    $.ajax({ 
     type: 'POST', 
     url:'createcompany.action?jsonRequestdata='+data, 
     dataType: 'json', 
     success: function(data){ 
      console.log(stringify(data)); 
     }}); 

Моя форма данных превращается в [{"name":"tan","value":"rrr"},{"name":"pan","value":"adf"},{"name":"tod","value":"1"}]

Struts2 действий Файл:

String jsonRequestdata; 
public String execute() throws Exception { 
    JSONArray jsonArr = (JSONArray) new JSONParser().parse(jsonRequestdata); 
    JSONObject json = (JSONObject) jsonArr.get(0); 


    System.out.println("TAN=" + json.get("tan")); 
    System.out.println("PAN=" + json.get("pan")); 
    System.out.println("TOD=" + json.get("tod")); 
    return "success"; 
} 

Present OUTPUT

TAN=null 
PAN=null 
TOD=null 

ответ

0

Поскольку я использую имя, значение, я должен получить его, используя имя. Ниже приведен рабочий код

JSONArray jsonArr = (JSONArray) new JSONParser().parse(jsonRequestdata); 

    for(int i=0;i<jsonArr.size();i++){ 
      JSONObject json=(JSONObject) jsonArr.get(i); 
      System.out.println("name=" + json.get("name")); 
      System.out.println("value=" + json.get("value")); 
    } 
0

Чтобы отправить данные с POST просьбой следует использовать data свойство как этот

$.ajax({ 
    type: 'POST', 
    url:'createcompany.action' 
    data: 'jsonRequestdata='+data 
    dataType: 'json', 
    success: function(data){ 
     console.log(JSON.stringify(data.jsonRequestdata)); 
    } 
}); 

Чтобы получить данные в компоненте действия вы должны использовать общественный сеттер

public void setJsonRequestdata(String data){ this.jsonRequestdata = data; } 

Чтобы вернуть данные обратно до success функция обратного вызова использовать общественный геттер

public String getJsonRequestdata(){ return this.jsonRequestdata; } 

Чтобы вернуть JSON из результата использования действия действия json.

<result type="json"><param name="includeProperties">jsonRequestdata</param></result> 

Обратите внимание, если вы добавляете json перехватчик к действию CONFIG вы можете использовать данные в формате JSON в запросе. Использование Content-Type: "application/json" с запросом приведет к запуску Struts2 для синтаксического анализа запроса и десериализации его в активном компоненте.

+0

Большое вам спасибо за помощь. Но все равно изменений нет. – user3875464

+0

У вас есть ошибки? –

 Смежные вопросы

  • Нет связанных вопросов^_^