Spring и JQuery: автозаполнение и сохранение по идентификатору [EDITED] - PullRequest
0 голосов
/ 15 января 2019

У меня есть список данных ролей в моей базе данных:

Роль:

|role_id|role_name|description |deleted_status|
###############################################
|1      |Admin01  |Role Admin  |0             |
|2      |Admin02  |Role Admin  |0             |
|3      |Admin03  |Role Admin  |0             |
|4      |Staff01  |Role Staff  |0             |
|5      |Staff02  |Role Staff  |0             |
|6      |Manager01|Role Manager|0             |
|7      |Manager02|Role Manager|0             |

Я создал скрипт автозаполнения, но каким-то образом он просто сохранил только имя_ роли. Здесь я хотел бы сохранить его по role_id.

JSP:

<input type="hidden" id="autoRoleId" path="roleId" />
<input type="text" id="autoRoleName" path="roleName" />

JavaScript:

$(document).ready(function() {
$('#autoRoleName').autocomplete({
    serviceUrl: '${pageContext.request.contextPath}/autoCompleteRoleX',
    paramName: "role",
    delimiter: ",",
    transformResult: function(response) {
        return {
            suggestions: $.map($.parseJSON(response), function(item){
                return {
                    data: item,
                    value: item.roleName,
                    result: item.roleName
                };
            })
        };
    }
}).bind("result", function(data, value) {
    $("#autoRoleId").val(value.id);
});
});

Но при сохранении сохраненное значение role_id равно нулю.

А вот и контроллер:

@RequestMapping(value="/autoCompleteRoleX", method=RequestMethod.GET)
public @ResponseBody
List<Role> getAutoCompleteRole(@RequestParam("role") String role) {
    List<Role> result = new ArrayList<Role>();

    try {
        String[] likeCols = {"roleName"};
        Object[] likePars = {role};

        String[] eqCols = {"deletedStatus"};
        Object[] eqPars = {Integer.valueOf(0)};

        String[] sortColumns = {"roleId"};

        List<Object> objects = roleService.searchDataLike(Role.class, likeCols, likePars, eqCols, eqPars, 0, 10);

        for (Object obj : objects) {
            result.add((Role) obj);
        }

    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }

    return result;
}

Большое спасибо.

...