我想使用 jQuery 的自动完成功能来执行以下操作:当用户在文本框中键入文本时,他将看到从服务器获取的可能单词列表。我的 HTML 代码是一个简单的文本框:
<label for="customer-name">Enter customer names: </label>
<input type="text" id="customer-name" name="customer-name"/>
从服务器发送和获取数据的 JavaScript 代码由 jQuery UI 的自动完成和 jQuery AJAX 函数实现:
$(function() {
$("#customer-name").autocomplete({
source: function(request, response) {
$.ajax({
url: '../account/customer-view',
type: 'POST',
contentType: 'application/json',
dataType: 'json',
data: request.term,
success: function(data) {
response($.map(data, function(item) {
return item;
}));
}
});
}
});
});
我的后端使用 Java Jersey 的 Web 服务。处理 AJAX 帖子的方法是:
@Path("customer-view")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response getCustomerInfo(@FormParam("customer-name") String partialName) {
// ... code to use partialName
}
但是,当我启动我的应用程序并对其进行调试时,我发现当我在文本框中输入一个字母时,例如,在文本框中输入一个“C”,变量partialName
不会从@FormParam
注入中获得值“C”,它是null
. 通常我总是通过使用来获取表单参数值@FormParam
。但在这种情况下,该值始终为空。如何从 ajax post 获取表单值?@FormParam
使用正确吗?如果没有,在这种情况下我应该使用什么来获取文本框值?