我想要使用jQuery的自動完成來執行以下操作:當用戶在文本框中鍵入文本時,他將看到從服務器獲取的可能單詞列表。我的HTML代碼是一個簡單的文本框:Jersey:得到null文本框輸入值
<label for="customer-name">Enter customer names: </label>
<input type="text" id="customer-name" name="customer-name"/>
的JavaScript代碼來發送和從服務器獲取數據的jQuery UI的autocomplete和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新澤西州的網站服務。處理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
是否正確使用?如果不是,在這種情況下我應該使用什麼來獲取文本框的值?