gpt4 book ai didi

java - 如何解决spring mvc映射

转载 作者:行者123 更新时间:2023-12-01 16:56:27 24 4
gpt4 key购买 nike

我有两个 Controller ,第一个是:

    @Controller("/similarsearch")
public class SimilarSearchController {

@Autowired
SimilarSearchService similarSearchService;

@RequestMapping(method = RequestMethod.GET,produces = "application/json; charset=UTF-8")
@ResponseBody
public String loadSimilarSearchPhrases(HttpServletRequest request,
@RequestParam(value = "q", required = true, defaultValue = "") final String query){
HttpSession session = request.getSession();
List<List<SimilarLink>> responseMain = (List<List<SimilarLink>>) session.getAttribute("responseMain");
Map<String, List<String>> result = similarSearchService.getSimilarSearchPhrases(responseMain,query);
return new JSONSerializer().exclude(JsonHelper.STANDARD_EXCLUDE).include("*").serialize(result);
}
}

它工作得很好,当我访问 localhost:0000/similarsearch/时,它返回了我需要的 json。但是当我添加另一个 Controller 时

@Controller("wiki")
public class WikiController {

@Autowired
SearchService searchService;

@SuppressWarnings("unchecked")
@RequestMapping(method = RequestMethod.GET,produces = "application/json; charset=UTF-8")
@ResponseBody
public String loadWikiInfo(HttpServletRequest request,
@RequestParam(value = "q", required = true, defaultValue = "") final String query){
HttpSession session = request.getSession();
List<List<SimilarLink>> responseMain = (List<List<SimilarLink>>) session.getAttribute("responseMain");
WikiInfoLocal wikiInfo = searchService.getWikiInfo(responseMain,query);
return new JSONSerializer().exclude(JsonHelper.STANDARD_EXCLUDE).include("*").serialize(wikiInfo);
}
}

我收到

java.lang.IllegalStateException:发现不明确的映射。无法映射“/similarsearch”bean 方法

public java.lang.String org.izsearch.controllers.SimilarSearchController.loadSimilarSearchPhrases(javax.servlet.http.HttpServletRequest,java.lang.String) to {[],methods=[GET],params=[],headers=[],consumes=[],produces=[application/json;charset=UTF-8],custom=[]}: There is already 'wiki' bean method

而且我无法使用这些 Controller 中的任何一个。

最佳答案

Spring Api 文档中定义的 Controller 为

Controllers provide access to the application behavior that you typically define through a service interface. Controllers interpret user input and transform it into a model that is represented to the user by the view. Spring implements a controller in a very abstract way, which enables you to create a wide variety of controllers.

所以会更加健壮,适合使用@RequestMapping将请求映射到您的 Controller 。

请这样使用它们

SimilarSearchController.java

@Controller
public class SimilarSearchController {

@Autowired
SimilarSearchService similarSearchService;

@RequestMapping(value="/similarsearch",method = RequestMethod.GET,produces = "application/json; charset=UTF-8")
@ResponseBody
public String loadSimilarSearchPhrases(HttpServletRequest request,
@RequestParam(value = "q", required = true, defaultValue = "") final String query){

WikiController.java

@Controller
public class WikiController {

@Autowired
SearchService searchService;

@SuppressWarnings("unchecked")
@RequestMapping(value="/wiki",method = RequestMethod.GET,produces = "application/json; charset=UTF-8")
@ResponseBody
public String loadWikiInfo(HttpServletRequest request,
@RequestParam(value = "q", required = true, defaultValue = "") final String query){

Basic tutorial about RequestMapping Usage

Detailed tutorial about RequestMapping,RequestParam and PathVariable Usage

关于java - 如何解决spring mvc映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32200590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com