Пример программы для получения JAVA LIST из SPRING MVC 3 CONTROLLER в JQUERY через AJAX CALL - PullRequest
0 голосов
/ 25 мая 2011

JQUERY:

$.ajax({
        datatype:"json",
        url:"<%=request.getContextPath()%>/appendStudentView.page",
    type: 'post',
    success: function(data, status) {
        alert("status=="+data)
        },
    error: function(xhr, desc, err) {
        alert("xhr=="+xhr+"Desc: " + desc + "\nErr:" + err);
        }
    });

SPRING CONTROLLER

/**
 * Handles request for adding two numbers
 */
@RequestMapping(value = "/appendStudentView.page")
public @ResponseBody String appendStudentField() {

    List xx=new ArrayList();
    xx.add("CONTROLLER");
return xx;
}

Я вызываю метод appendStudentField () через JQUERY AJAX и возвращаю список. Я не получаю список xx вОтвет AJAX Call.

Пожалуйста, помогите ему.

Thx Randy

Ответы [ 2 ]

1 голос
/ 25 мая 2011

У вас есть Джексон на вашем пути к классам? Спрингсу нужен Джексон для вывода JSON.

Этот тег регистрирует DefaultAnnotationHandlerMapping и АннотацияMethodHandlerAdapter bean которые требуются для Spring MVC отправка запросов в @Controllers. тег настраивает эти два компонента с разумные значения по умолчанию, основанные на том, что присутствует в вашем классе. значения по умолчанию:
...

  • Поддержка чтения и записи JSON, если Джексон присутствует на CLASSPATH.

Источник: Настройка Spring MVC> 15.12.1. MVC: аннотация привод

0 голосов
/ 25 мая 2011

Не могли бы вы просто использовать Модель и передавать свои переменные таким образом? Вот пример кода, который я использую.

@Controller
@Scope("prototype")
@RequestMapping("/favorites")
public class FavoritesController {

    protected final Log logger = LogFactory.getLog(getClass());

    @Autowired
    FavoriteService favoriteService;

        @RequestMapping(method = RequestMethod.POST)
        public void handle(String circuit, String customer, String action, Model model) {

        String userid = SecurityContextHolder.getContext().getAuthentication().getName();

        List<Map<String, String>> favorites = null;

        if (action.equals("save")) {
            favoriteService.setFavorite(userid, circuit, customer);
            favorites = favoriteService.getFavorites(userid);
        }

        if (action.equals("delete")) {
            favoriteService.deleteFavorite(userid, circuit);
            favorites = favoriteService.getFavorites(userid);
        }

        model.addAttribute("userid", userid);
        model.addAttribute("circuit", circuit);
        model.addAttribute("customer", customer);
        model.addAttribute("favorites", favorites);
    }
}

[Отредактировано, чтобы добавить часть jquery этого]

   // **************************************** 
//  SAVE TO FAVORITES 
// ****************************************
$("#save-to-favorite").live("click", function() {
    var saveCircuit = $(this).attr('circuit');
    var saveCustomer = $(this).attr('customer');

    var data = "action=save&circuit=" + saveCircuit + "&customer=" + saveCustomer;
    $.ajax( {
        type : "POST",
        url : "favorites.html",
        data : data,
        success : function(xhr) {
            $("#favorite-list").html(xhr);
        },
        error : function(xhr) {
            var response = xhr.responseText;
            response = response.replace(/<html>.+<body>/i, "")
            response = response.replace(/<\/body><\/html>/i, "")

            alert(response);
        }
    });
});

// ****************************************
// DELETE FROM FAVORITES
// ****************************************
$(".delete-favorite-icon").live("click", function() {
    var deleteCircuit = $(this).attr('circuit');

    var data = "action=delete&circuit=" + deleteCircuit;
    $.ajax( {
        type : "POST",
        url : "favorites.html",
        data : data,
        success : function(xhr) {
            $("#favorite-list").html(xhr);
        },
        error : function(xhr) {
            var response = xhr.responseText;
            response = response.replace(/<html>.+<body>/i, "")
            response = response.replace(/<\/body><\/html>/i, "")

            alert(response);
        }
    });
});

`

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