假设我有这个自定义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
是一个JSON对象数组,对应于上面的Java类Club
({ value : club.id, label : club.name }
)。
在我提交表单之前,此工作正常。
我正在使用Spring MVC Framework,这是我的控制器:
@RequestMapping(value = "someMapping", method = RequestMethod.POST)
public String someMethod(HttpSession session, Model model, @ModelAttribute("someForm") SomeForm form)
{
jada jada ...
}
其中SomeForm
包含字段private Club clubChoice
。我想将我选择的JSON对象映射到该字段。我怎样才能做到这一点?非常感谢。
答案 0 :(得分:0)
嗯,我花了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" />