ajax-вызов от представления к контроллеру в среде Play

Я новичок в MVC и Play framework (Java). Вместо того, чтобы использовать Groovy для динамического HTML, я сделал нашу собственную страницу со статическим HTML, я имею в виду, что у нас нет выражений Groovy. Здесь у меня есть контроллер «Клиент», который генерирует объект JSON, который должен быть отправлен на вызов ajax в поле зрения. Я пробовал использовать метод render(), кажется, я использовал его неправильно. Вы можете дать мне какую-нибудь идею, чтобы перейти отсюда. Благодарю.

public static void customer(){
    WordAPI objWordAPI=new WordAPI();
    List<WordInfo> listObjWord= objWordAPI.MakeAPIObject(nSurveyId);
    JSONSerializer modelSerializer=new JSONSerializer().exclude("NSpontanity","NWordRepresentativity","NWordValue","NWordFrequency","class").rootName("Words");
    render("Application/wordcloud.html",modelSerializer.serialize(listObjWord));
  }

и вызов ajax в представлении "wordcloud.html"

$.ajax({
    url: "/customer",
    dataType : 'json',
    success: function (data) {
        alert(data);
             }
        })

person dotnetrocks    schedule 22.09.2012    source источник
comment
Если у вас есть контроллер с именем Customer и метод с именем customer, URL-адрес должен быть /customer/customer. Если вы хотите использовать URL-адрес /customer, вам нужно будет явно указать его в файле conf/routes.   -  person seePatCode    schedule 13.03.2013


Ответы (1)


Я считаю, что это должно работать:

public static void customer(){
    WordAPI objWordAPI=new WordAPI();
    List<WordInfo> listObjWord= objWordAPI.MakeAPIObject(nSurveyId);
    JSONSerializer modelSerializer=new JSONSerializer().exclude("NSpontanity","NWordRepresentativity","NWordValue","NWordFrequency","class").rootName("Words");
    renderJSON(modelSerializer.serialize(listObjWord));
  }

Я никогда раньше не использовал rootName, обычно я делаю что-то вроде этого:

public static void refreshNotifications()
    {
        JSONSerializer notifySerializer = new JSONSerializer().include("message","notifyId","class").exclude("*");
        List<Notification> notificationList = user.getNotifications();
        renderJSON(notifySerializer.serialize(notificationList));
    }

Боковое примечание: с refreshNotifications у меня есть метод безопасности, который я запускаю перед тем, как проверить и заполнить пользовательский объект.

person seePatCode    schedule 26.09.2012