Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ajax时无法调用Spring控制器_Ajax_Spring_Url_Model View Controller_Controller - Fatal编程技术网

使用ajax时无法调用Spring控制器

使用ajax时无法调用Spring控制器,ajax,spring,url,model-view-controller,controller,Ajax,Spring,Url,Model View Controller,Controller,在Spring中使用ajax时,我遇到了一个问题 当我从选择框中选择区域或在屏幕上输入商店名称时,我希望得到过滤器列表结果,所以我的想法是使用Ajax来解决这个问题。但是Ajax不能调用特定控制器$.Ajax的url属性中的内容 以下是我的档案: JSP: 应用存储搜索的CSS id <form:form modelAttribute="appliedStoreInput" id="appliedStoreSearch"> <form:select path="reg

在Spring中使用ajax时,我遇到了一个问题

当我从选择框中选择区域或在屏幕上输入商店名称时,我希望得到过滤器列表结果,所以我的想法是使用Ajax来解决这个问题。但是Ajax不能调用特定控制器$.Ajax的url属性中的内容

以下是我的档案:

  • JSP:
  • 应用存储搜索的CSS id

    <form:form modelAttribute="appliedStoreInput" id="appliedStoreSearch">
    
        <form:select path="regionId" cssClass="form-control">
            <form:option value="" label="Toàn quốc"></form:option>
            <form:options items="${listRegions}" />
        </form:select>
    
        <input type="email" class="form-control"placeholder="Tìm kiếm cửa hàng" name="storeNameInp" />
        <div class="input-icon">
            <i class="fa fa-search"></i>
        </div>
    
    </form:form>
    
  • 控制器:

    @RequestMapping(value="/search_applied_store_ajax",method=RequestMethod.POST,produces="application/json" )
    public @ResponseBody List<AppliedStoreDto> searchAppliedStoreAjax( @ModelAttribute("appliedStoreInput")AppliedStoreInputDto appliedStoreinput){
    
        System.out.println("in ra 1 so thu gi go");
    
        List<AppliedStoreDto> listAppliedStore = null;
    
        appliedStoreinput.setCompanyId(7);
    
        try {
    
         // get list applied store
         listAppliedStore = promotionLogic.findAllAppliedStore(appliedStoreinput);
    
        } catch (Exception e) {
    
         logger.error(e.getMessage());
    
        }
    
      return listAppliedStore;
    }
    
    @RequestMapping(value=“/search\u applicated\u store\u ajax”,method=RequestMethod.POST,products=“application/json”)
    public@responseBy列表searchAppliedStoreAjax(@ModelAttribute(“appliedStoreInput”)appliedStoreInput到appliedStoreInput){
    System.out.println(“in ra 1 so thu gi go”);
    List listAppliedStore=null;
    appliedStoreinput.setCompanyId(7);
    试一试{
    //获取应用于存储的列表
    listAppliedStore=promotionLogic.findAllAppliedStore(appliedStoreinput);
    }捕获(例外e){
    logger.error(例如getMessage());
    }
    返回listAppliedStore;
    }
    
  • 我调试了Javascript,然后从表单中检索数据,但ajax仍然无法调用Spring控制器(/promotions\u controller/search\u applicated\u store\u ajax)。控制台中没有显示任何内容


    请帮助我,tks所有人

    如果ajax调用的contentType为“application/json”,我会考虑将consumes=“application/json”添加到您的RequestMapping中,并将ModelAttribute替换为RequestBody

    Sean的回答基本正确。只是添加了确切的细节。函数声明应该如下所示

    @RequestMapping(value="/search_applied_store_ajax",method=RequestMethod.POST,produces = { MediaType.APPLICATION_JSON_VALUE}, consumes = {
            MediaType.APPLICATION_JSON_VALUE} )
    

    public@ResponseBody List searchAppliedStoreAjax(@RequestBody AppliedStoreInputDto appliedStoreinput to appliedStoreinput){

    akuma8,你能帮我吗?你能添加你的控制器映射吗?这里你只添加了处理程序方法。同时检查请求是否真的发送了。
    @RequestMapping(value="/search_applied_store_ajax",method=RequestMethod.POST,produces = { MediaType.APPLICATION_JSON_VALUE}, consumes = {
            MediaType.APPLICATION_JSON_VALUE} )