Spring MVC アプリケーションで ajax を使用してオートコンプリートを使用しようとしています。私はこれを参照していました。しかし、それにはいくつかの問題があります。私を案内してください..
私のスクリプトは..
<script>
$(function() {
$( "#bName" ).autocomplete({
source: function( request, response ) {
$.ajax({
url: "getBatchNames.jav",
dataType: "json",
data: {
term: request.term
},
success: function( data ) {
response( $.map( data.batchNameList, function( item ) {
return {
label: item.pinMasterBatchName,
value: item.pinMasterBatchName
};
}));
}
});
},
minLength: 1,
open: function() {
$( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
},
close: function() {
$( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
}
});
});
</script>
....
<tr>
<td width="95%">
<div class="ui-widget">
<label style="width:35%;">Batch Name</label>
<form:input path="pinMasterBatchName" id="bName" class="txtBox"/>
</div>
</td>
</tr>
呼び出しはコントローラーに送られ、Map> が返されます。私が行ったことを説明します。
コントローラークラスで
@RequestMapping(value="/getBatchNames.jav", method = RequestMethod.GET)
@ResponseBody
public Map<String, List<PinMasterData>> getZipcodes()
{
System.out.println("helloooo");
List<PinMasterData> batchNameList = pinService.ListBatchesUnderClient(45);
Map<String, List<PinMasterData>> pinMap = new HashMap<String, List<PinMasterData>>();
pinMap.put("batchNameList", batchNameList);
return pinMap;
}
そして、私のモデルクラスでは、クラスは次のようになります
public class PinMasterData
{
@Id
@GeneratedValue
@Column ( name = "Id" )
private Integer Id;
@Column ( name = "BatchName" )
private String pinMasterBatchName;
@Column ( name = "Prefix" )
private String Prefix;
実際には、呼び出しはコントローラーに送られ、リストが返されます。しかしその後、jsp ページのテキスト フィールドの下にリストが表示されません。何が問題ですか?私を案内してください..事前に感謝
編集..
success: function( data ) {
response( $.map( data.batchNameList, function( item ) {
return {
label: item.pinMasterBatchName,
value: item.pinMasterBatchName
};
}));
alert("hai");
}
});
私はこれを試しました(コールバックがajaxかどうかを確認するため)。しかし、その警告ボックスも表示されません..