如何将 jquery-ui 的自动完成选择映射到 POST 上的 Java 类
Posted
技术标签:
【中文标题】如何将 jquery-ui 的自动完成选择映射到 POST 上的 Java 类【英文标题】:How to map jquery-ui's autocomplete choice to a Java class on POST 【发布时间】:2017-03-23 03:36:33 【问题描述】:假设我有这个自定义 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】:好吧,我又花了 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" />
【讨论】:
以上是关于如何将 jquery-ui 的自动完成选择映射到 POST 上的 Java 类的主要内容,如果未能解决你的问题,请参考以下文章