当前位置: 首页 > 知识库问答 >
问题:

Spring Boot控制器未映射随机方法

马峻
2023-03-14

我对@RestController和Spring Boot应用程序有问题

@RestController
@RequestMapping("/download")
public class CsvExportController {

    private final ZipFileService zipFileService;

    public CsvExportController(ZipFileService zipFileService) {
        this.zipFileService = zipFileService;
    }

    @GetMapping("/export")
    public void getFile(HttpServletResponse response) {
        DateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
        String currentDateTime = dateFormatter.format(new Date());

        String headerKey = "Content-Disposition";
        String headerValue = "attachment; filename=name-" + currentDateTime + ".zip";
        response.setContentType("application/zip");
        response.setHeader(headerKey, headerValue);

        zipFileService.export(response);
    }

    @GetMapping("/test")
    public String test() {
       return "Hello";
    }
}

我对GET映射有问题

2022-01-13 22:15:48.196  WARN 11944 --- [nio-8080-exec-4] o.s.web.servlet.PageNotFound             : No mapping for GET /download/test
2022-01-13 22:15:48.266  WARN 11944 --- [nio-8080-exec-5] o.s.web.servlet.PageNotFound             : No mapping for GET /favicon.ico

第一个endpoint@GetMap("/export")起作用,第二个不起作用;t起作用。在后一个endpoint中,无论我返回什么。在这里我测试了“Hello”,但它无论如何都不起作用。有趣的是,当我将第一个“导出”的路径更改为其他任何内容时,它也停止工作任何想法?

@Configuration
@EnableWebMvc
public class AppConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry
                .addMapping("/**")
                //.....
    }

    @Bean
    public ModelMapper modelMapper() {
        return new ModelMapper();
    }
}
@SpringBootApplication
public class Application{

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

共有3个答案

关苗宣
2023-03-14

问题是SpringBoot可能正在试图找到一个名为Hello的视图,而您没有。或者模板配置错误。

尝试向方法中添加ResponseBody注释,它应按原样返回字符串

@GetMapping("/test")
public @ResponseBody String test() {
   return "Hello";
}
龙景澄
2023-03-14

可以尝试将测试endpoint的响应类型设置为json吗

@请求映射(products=[MediaType.APPLICATION\u JSON\u VALUE])

葛炯
2023-03-14

对不起,我不能添加评论。但是我想也许你可以提供更多的细节。因为它对我来说是可用的。如果它是restapi/favicon.ico不应该被请求

 类似资料:
  • 假设我有很多团队,比如:“团队A,团队B…团队Z”,每个团队至少有5个组件。现在我想创建一个通用控制器,它可以响应任何类型的请求,这样我就可以获得关于团队成员的信息。 例如,我的控制器必须能够映射此请求: 团队课程可以是: 而且 显然它既可以执行也可以执行,重点是我不想为每个团队和每个数字指定一个控制器,我只想要一个可以响应的控制器。 我还需要指定它可以接受的字符串和值的范围(例如,最大值为5)。

  • 我在使用spring-boot-devtools时遇到了一个问题,当应用程序启动时,spring boot加载了控制器中定义的所有映射。

  • 当我尝试通过枚举将源中的字符串映射到目标中的整数时。ModelMapper失败。 来源 目的地 字符串和整数之间的映射在枚举中定义

  • 是否可以通过URL的trailing关键字映射spring mvc控制器。例如,假设我有以下URL: 我想有3个控制器方法。第1个url应由控制器“X”处理,第2个url应由方法“Y”处理,第3、4个url应由单个方法“Z”处理。这意味着任何以结尾的url都应仅由方法“z”处理。无论该URL的主要内容是什么。

  • ControllerClassNameHandlerMapping类是HandlerMapping接口的一个实现,它是通过一个约定来解析请求URL及处理该请求的@Controller控制器实例之间的映射关系。 请看下面一个简单的控制器实现。请注意留意该类的 名称: public class **ViewShoppingCartController** implements Controller {