如何将 jquery-ui 的自动完成选项映射到 POST 上的 Java class

How to map jquery-ui's autocomplete choice to a Java class on POST

说我有这个习惯 Java class Club.java:

public class Club
{
    private Integer id;
    private String name;

    /* getters, setters */
}

现在 jquery-ui 自动完成代码:

var autocomplete = $('#clubs').autocomplete({
    source: currentClubs
}).data("autocomplete");

if (autocomplete != undefined)
{
    autocomplete._renderItem = function(ul, item) {
        return $("<li>").attr('data-value', item.value).append(item.label).appendTo(ul);
    };
}

其中 currentClubs 是 JSON 对象的数组,对应于上面的 Java class Club ( { value : club.id, label : club.name } )。 在我提交表格之前,这一切正常。

我正在使用 Spring MVC 框架,这是我的控制器:

@RequestMapping(value = "someMapping", method = RequestMethod.POST)
public String someMethod(HttpSession session, Model model, @ModelAttribute("someForm") SomeForm form)
{
    jada jada ...
} 

其中 SomeForm 包含字段 private Club clubChoice。我想将我选择的 JSON 对象映射到该字段。我怎样才能做到这一点?非常感谢。

好吧,我又花了 10 分钟才弄清楚该怎么做。
我更改了这部分:

var autocomplete = $('#clubs').autocomplete({
    source: currentClubs
}).data("autocomplete");

对此:

var autocomplete = $('#clubs').autocomplete({
    source: currentClubs,
    select: function (event, ui) {
        $('#club-id').val(ui.item.id);
    }                       
}).data("autocomplete");

其中 clubId 是隐藏输入:

<form:input path="club.name" name="club-name" id="club-name" />
<form:hidden path="club.id" name="club-id" id="club-id" />