Get 404 by @RequestBody

  • 1:页面
var url = "${pageContext.request.contextPath}/analysisHistory";//http://localhost:8080/ASW/analysisHistory
        $.ajax({//404?
            url : url,
            type : "POST",
            dataType : "json",
            data : JSON.stringify(jsonObj),
            contentType : "application/json",
            success : function(data) {
                console.log(data);
                var hisDataList = data.hisDataList;
                console.log(hisDataList);
            },
            error : function() {
                console.log('请求失败!');
            }
        })
  • 2:f12
    这里写图片描述
  • 3:原因

web.xml截获的.html结尾的请求,而我发的没有这个后缀,加上就行了

<servlet-mapping>
        <servlet-name>springMvc</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>
根据代码1“@FeignClient(name = "UserUgsApi", url = "${newbim.login-domain}") public interface IApplicationServicePlatformClient {@PostMapping("/ums/v1/feign/omp/project/search") ResultWrapper<QueryAllProject> listUserProject(@RequestHeader("BSP_TOKEN") String bspToken, @RequestHeader("BSP_USER_ID") String bspUserId, @RequestHeader("BSP_USER_ENV_ID") String bspUserEnvId, @RequestHeader("BSP_USER_TENANT") String bspUserTenant, @RequestBody ProjectCondition queryProjectDto);” ,修改并优化下面代码:public List<ProjectCountVO> projectCount(String beginTime, String endTime, Integer forceType, String projectId) { List<TaskTask> taskTaskList = this.listStatisticsTask(beginTime, endTime, forceType, projectId); if(CollectionUtil.isEmpty(taskTaskList)){ return Collections.emptyList(); } List<ProjectCountVO> result = new ArrayList<>(); Map<String, List<TaskTask>> projectTaskMap = taskTaskList.stream().collect(Collectors.groupingBy(TaskTask::getProjectId)); for (Map.Entry<String, List<TaskTask>> projectTaskEntry : projectTaskMap.entrySet()) { projectId = projectTaskEntry.getKey(); ProjectCountVO projectCountVO = new ProjectCountVO(); projectCountVO.setId(projectId); //查询项目名称String projectName = Optional.ofNullable(projectTaskMap.get(projectId)).map(taskList -> taskList.get(0).getName()).orElse(""); projectCountVO.setName(projectName); List<TaskTask> taskList = projectTaskEntry.getValue(); projectCountVO.setTaskCount(taskList.size()); Integer problemCount = CollectionUtil.isEmpty(taskList) ? 0 : taskList.stream().collect(Collectors.summingInt(task-> Optional.ofNullable(task.getProblemNum()).orElse(0))); projectCountVO.setProblemCount(problemCount); result.add(projectCountVO); } return result; }
05-24
根据代码1,我们可以发现该代码是通过 FeignClient 调用 UserUgsApi 的接口,获取项目列表信息。在此基础上,我们可以优化代码如下: 1. 将 FeignClient 接口的定义进行封装,以便于后续维护和调用。 ```java public interface UserUgsApiFeignClient { @PostMapping("/ums/v1/feign/omp/project/search") ResultWrapper<QueryAllProject> listUserProject(@RequestHeader("BSP_TOKEN") String bspToken, @RequestHeader("BSP_USER_ID") String bspUserId, @RequestHeader("BSP_USER_ENV_ID") String bspUserEnvId, @RequestHeader("BSP_USER_TENANT") String bspUserTenant, @RequestBody ProjectCondition queryProjectDto); } ``` 2. 将查询任务列表的代码进行封装,以便于后续的复用和维护。 ```java private List<TaskTask> listStatisticsTask(String beginTime, String endTime, Integer forceType, String projectId) { // 省略具体实现 } ``` 3. 将代码中的变量名进行修改,以便于提高代码的可读性和可维护性。 ```java public List<ProjectCountVO> projectCount(String beginTime, String endTime, Integer forceType, String projectId) { List<TaskTask> taskList = this.listStatisticsTask(beginTime, endTime, forceType, projectId); if(CollectionUtil.isEmpty(taskList)){ return Collections.emptyList(); } List<ProjectCountVO> result = new ArrayList<>(); Map<String, List<TaskTask>> projectTaskMap = taskList.stream().collect(Collectors.groupingBy(TaskTask::getProjectId)); for (Map.Entry<String, List<TaskTask>> projectTaskEntry : projectTaskMap.entrySet()) { String currentProjectId = projectTaskEntry.getKey(); ProjectCountVO projectCountVO = new ProjectCountVO(); projectCountVO.setId(currentProjectId); //查询项目名称 String projectName = Optional.ofNullable(projectTaskMap.get(currentProjectId)).map(taskList -> taskList.get(0).getName()).orElse(""); projectCountVO.setName(projectName); List<TaskTask> currentTaskList = projectTaskEntry.getValue(); projectCountVO.setTaskCount(currentTaskList.size()); Integer problemCount = CollectionUtil.isEmpty(currentTaskList) ? 0 : currentTaskList.stream().collect(Collectors.summingInt(task-> Optional.ofNullable(task.getProblemNum()).orElse(0))); projectCountVO.setProblemCount(problemCount); result.add(projectCountVO); } return result; } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值