有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何将jqueryui的自动完成选项映射到POST上的Java类

假设我有一个自定义Java类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是对应于上述Java类Club{ value : club.id, label : club.name })的JSON对象数组。 在我提交表格之前,这一切都很好

我使用的是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对象映射到该字段。我怎样才能做到这一点?非常感谢


共 (1) 个答案

  1. # 1 楼答案

    我又花了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" />