jsp中的$ .post如下:
$(document).ready(function(){
$("#searchtext").keyup(function(){
$.post("search",
{
parameter:$("#searchtext").val()
},
function(response){
document.getElementsByTagName("html")[0].innerHTML=response;
});
});
});
控制器如下:
@RequestMapping("/search")
public @ResponseBody ModelAndView searchByUser(@RequestParam(value="parameter" , required=false) String bookAttributesLike){
ModelAndView modelAndView = new ModelAndView("/homepage");
if(bookAttributesLike == null)
{
}
else
{
try {
searchResults = bookManagerService.getBookList(bookAttributesLike);
modelAndView.addObject("message",searchResults);
} catch (NoResultFoundException e) {
modelAndView = new ModelAndView("/homepage");
logger.info("No Book Found");
}
catch (ServiceException e) {
modelAndView = new ModelAndView("/error");
logger.error("Problem in fetching records");
}
}
return modelAndView;
}
}
现在,当我输入一个单词时,我会得到列表,但页面会刷新并且第一个字母不见了。那么可以做些什么来获取列表并获取文本框中的内容呢?
答案 0 :(得分:0)
将结果放在div中而不是重写整个页面。
变化:
document.getElementsByTagName("html")[0].innerHTML=response;
类似于:
document.getElementById("myDiv").innerHTML = response;
当然,您现在需要在页面中定义div:
<div id='myDiv'></div>