jav*_*ude 1 ajax jquery spring-mvc jquery-autocomplete
在文本字段中进行更改时,jQuery会调用Spring Controller.我的问题是这个查询如何发送@RequestParam到Controller方法controller/find?
如何Param在此通话中发送额外内容?
$(document).ready(function() {
$( "#id" ).autocomplete({
source: "${pageContext. request. contextPath}/controller/find.htm"
});
});
Run Code Online (Sandbox Code Playgroud)
这有效
@RequestMapping(value = "/find", method = RequestMethod.GET)
public @ResponseBody
List<String> findItem(@RequestParam("term") String id)
Run Code Online (Sandbox Code Playgroud)
但需要类似的东西
@RequestMapping(value = "/find", method = RequestMethod.GET)
public @ResponseBody
List<String> findItem(@RequestParam("term") String id, Additional param here ??)
Run Code Online (Sandbox Code Playgroud)
如果将函数传递给Autocomplete的source选项(而不仅仅是指定URL的字符串),则可以定义要发送到服务器的数据结构:
$('#id').autocomplete({
source: function (request, response) {
$.ajax({
url: './controller/find.htm',
data: {
term: request.term,
extraParam: 'foo'
},
success: function (data) {
console.log('response=', data);
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
现在自动完成请求将包含两个参数:term和extraParam(jsFiddle:http://jsfiddle.net/gtBUt/,打开浏览器的网络流量选项卡以查看发送的内容).
然后控制器可以像这样处理这个输入:
@RequestMapping(value = "/find", method = RequestMethod.GET)
@ResponseBody
public List<String> findItem(@RequestParam("term") String term,
@RequestParam("extraParam") String extraParam) {
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7714 次 |
| 最近记录: |