Передача entity из jquery в spring controller

273
18 июня 2017, 16:03

Есть класс Users:

@Entity
@Table(name = "USERS")
public class Users implements Serializable{
    private BigInteger id;
    private String login;
    private BigInteger stuffId;
    private String password;
    private String last_name;
    private String first_name;
    private String middle_name;
    private String email;
    private int office_id;
    private String state;
    private Set<Roles> roles;
    private Stuffs userStuff;
    private MailingGroups mailingGroups;
    public Users(){
    }
    public Users(String id, String login){
        this.id = new BigInteger(id);
        this.login = login;
    }
    //Геттеры и сеттеры
}

Есть класс MailingGroups:

    @Entity
@Table(name = "MailingGroups")
public class MailingGroups implements Serializable{
    private BigInteger id;
    private String mailingGroup;
    private List<Users> users;
    //Геттеры и сеттеры
}

Есть controller:

@PostMapping(value = { "/newmailgroup" }, produces="application/json;charset=UTF-8")
    public @ResponseBody GenericResponse saveGroup(@RequestBody MailingGroups mailingGroups) {
        GenericResponse response = new GenericResponse();
        mailingGroups = mailingGroupsService.create(mailingGroups);
        response.setMessage("Группа " + mailingGroups.getMailingGroup() + " успешно добавлена.");
        return response;
    }

Есть JavaScript код:

function saveGroup() {
    var token = $("meta[name='_csrf']").attr("content");
    var header = $("meta[name='_csrf_header']").attr("content");
    var users = [];
    $('#users').find(':selected').each(function(i, selected){
        users[i] = JSON.stringify({id: $(selected).val()});
    });
    var jsonUsers = JSON.stringify(users);

    var mailGroup = ({"mailingGroup" : $('#mGroup').val(), "users" : users});
    $('#mail_overlay').css('z-index', 1).css('opacity', 0);
    $('#mail_modal_form').css('z-index', 1).css('opacity', 0);
    showLoader();
    $.ajax({
        type : "POST",
        contentType : "application/json;charset=utf-8",
        url : "newmailgroup",
        data : JSON.stringify(mailGroup),
        dataType : 'json',
        timeout : 100000,
        beforeSend: function(xhr){
            xhr.setRequestHeader(header, token);
        },
        success : function(data) {
            $('#message').append(data.message);
            $('#mGroup').val('');
            closeLoader();
            $('#mail_overlay').css('z-index', 3).css('opacity', 0.8);
            $('#mail_modal_form').css('z-index', 5).css('opacity', 1);
        },
        error : function(e) {
            console.log("ERROR: ", e);
            show(e);
            closeLoader();
            $('#mail_overlay').css('z-index', 3).css('opacity', 0.8);
            $('#mail_modal_form').css('z-index', 5).css('opacity', 0.8);
        }
    });
}

Есть конвертер:

public class StringToUserConverter implements Converter<String, Users> {
    //@Autowired
    @Resource(name = "userService")
    private UserService userService;
    @Autowired
    public StringToUserConverter(UserService userService) {
        this.userService = userService;
    }
    public Users convert(String id) {
        Users user = null;
        try{
            BigInteger IntId = new BigInteger(id);
            user = userService.findUserById(IntId);
        }catch(Exception ex){
            user = userService.findByLogin(id);
        }
        System.out.println("User : " + user);
        return user;
    }
}

Если поставить users: null, то группу сохраняет, если делать так, как описано в js, то до controller'а не доходит запрос. Что я делаю не так?

READ ALSO
Открытие диалог фрагмента в Clean Architecture

Открытие диалог фрагмента в Clean Architecture

Мне интересна работа с фрагментами и диалогФрагментамиВот я нашёл проект, но я смотрю его и у меня куча вопросов

241
JAVA. Spring MVC, как создать view

JAVA. Spring MVC, как создать view

Доброго времени сутокВпервые щупаю Spring MVC

318
Как избавиться от провалов в id? sql

Как избавиться от провалов в id? sql

Здравствуйте, есть таблица, id генерируется базой данных, после удаления строки образуется провал пример:

261
Как десериализовать объект на другом ПК?

Как десериализовать объект на другом ПК?

Я сериализовал класс и отправил его по сети от сервера к клиентуКлиент должен восстановить состояние класса

266