我对@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);
}
}
问题是SpringBoot可能正在试图找到一个名为Hello的视图,而您没有。或者模板配置错误。
尝试向方法中添加ResponseBody注释,它应按原样返回字符串:
@GetMapping("/test")
public @ResponseBody String test() {
return "Hello";
}
可以尝试将测试endpoint的响应类型设置为json吗
@请求映射(products=[MediaType.APPLICATION\u JSON\u VALUE])
对不起,我不能添加评论。但是我想也许你可以提供更多的细节。因为它对我来说是可用的。如果它是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 {