【发布时间】:2016-05-12 06:52:59
【问题描述】:
我编写了一个服务,它通过来自 solr 的 AJAX 调用进行查询,并将搜索结果作为 json 返回。我想将此 json 从我的控制器返回到 AJAX。
public class SearchServiceImpl implements SearchService {
private String getSearchResults(String url) throws ClientProtocolException,
IOException {
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(url);
HttpResponse response = client.execute(get);
//logger.info("Response: " + response.getEntity().getContent());
BufferedReader rd = new BufferedReader(new InputStreamReader(response
.getEntity().getContent()));
StringBuilder sb = new StringBuilder();
String line = "";
while ((line = rd.readLine()) != null) {
sb.append(line);
}
return sb.toString();
}
public String performSearch(String term) {
String result = "";
try {
result = getSearchResults(getSolrURL(term)); // getSolrURL() prepares the solr url
} catch (ClientProtocolException e) {
logger.error(e);
} catch (IOException e) {
logger.error(e);
}
return result;
}
}
这是我的控制器中的 handleRequest() 方法 -
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
logger.info("Perform search view");
String term = request.getParameter("term");
String result = searchService.performSearch(term);
// Here I need to return result which is a json
ModelAndView mav = new ModelAndView(new MappingJackson2JsonView());
// mav.addObject("key1", "value1");
// mav.addObject("key2", "value2");
return mav;
}
【问题讨论】: