Операция $ .ajax post в struts2 возвращает внутреннюю ошибку сервера - PullRequest
0 голосов
/ 30 марта 2011

Я пытаюсь выполнить эту запись AJAX, но получаю ошибку сервера 500. Если я не посылаю никаких данных, я вижу, что они достигают точки останова, установленной в контроллере. Но когда я отправляю данные, это не так и возвращает ошибку 500. Помогите? Спасибо.

В консоли Firebug,
Заголовок запроса имеет Content-Type application/x-www-form-urlencoded; charset=UTF-8 и ответ как com.hearsay.example.mktpx.ui.action.LoadDefaultsAction.retrieveBenchmark()

Код:

$.ajax( {
    type : "POST",
    url : "loadBenchMark",
    data : {'ruleset':'1'},
    success : function(data) {
        console.log("success"); 
        },
            error:error : function(request, textStatus, errorThrown) {
        console.log("Error Thrown:"  +request.statusText); 
        }
 });

Класс действия:

  public String retrieveBenchmark(int ruleset) {
    setBenchmarkProductList(retrieveBenchmarkProductList());
    return SUCCESS;
}

Struts.xml

<action name="loadBenchMark"
        class="com.hearsay.example.mktpx.ui.action.LoadDefaultsAction" method="retrieveBenchmark">
   <result type="json"></result>
</action>

1 Ответ

1 голос
/ 30 марта 2011

Сначала удалите параметр ruleset из метода. Затем добавьте переменную экземпляра вместо этого в класс действия со стандартными методами getter и setter - как это:

private int ruleset // or String, if you're passing String values

public int getRuleset() {
   return this.ruleset;
}

public void setRuleset(int ruleset) {
   this.ruleset = ruleset;
}

Это способ передачи параметров в действие Struts - Struts вызывает соответствующий установщик. Не забудьте использовать правильные типы данных - не передавайте String значения для int переменных и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...