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

带单页角度重定向的Spring引导2

柴瀚
2023-03-14

我有一个单页角应用与Spring引导。它看起来如下所示:

src
  main
  java
    controller
       HomeController
       CustomerController
       OtherController
  webapp
    js/angular-files.js
    index.html

Spring Boot正确地默认为webapp文件夹,并为index.html文件服务。

我想做的是:

@RequestMapping("/api/other-controller/:id") can write shorthand  @RequestMapping("/other-controller/:id")

共有1个答案

连厉刚
2023-03-14

对于不以/api开头的每个本地REST请求,覆盖并重定向到默认的webapp/index.html。我计划为spring控制器提供任何/API。

更新15/05/2017

让我为其他读者重新表述一下你的问题。(纠正我,如果被误解)

背景
使用Spring Boot并从类路径服务静态资源

要求
所有404非api请求都应重定向到index.html

非API-意味着URL不以/API开头的请求。
API-404应该像往常一样抛出404

application.properties添加以下内容

spring.mvc.throw-exception-if-no-handler-found=true
spring.resources.add-mappings=false

添加ControllerAdvice,如下所示

@ControllerAdvice
public class RedirectOnResourceNotFoundException {

    @ExceptionHandler(value = NoHandlerFoundException.class)
    public Object handleStaticResourceNotFound(final NoHandlerFoundException ex, HttpServletRequest req, RedirectAttributes redirectAttributes) {
        if (req.getRequestURI().startsWith("/api"))
            return this.getApiResourceNotFoundBody(ex, req);
        else {
            redirectAttributes.addFlashAttribute("errorMessage", "My Custom error message");
            return "redirect:/index.html";
        }
    }

    private ResponseEntity<String> getApiResourceNotFoundBody(NoHandlerFoundException ex, HttpServletRequest req) {
        return new ResponseEntity<>("Not Found !!", HttpStatus.NOT_FOUND);
    }
}

您可以根据需要自定义错误消息。

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RequestMapping("/api")
public abstract class BaseController {}
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class FirstTestController extends BaseController {
    @RequestMapping(path = "/something")
    public String sayHello() {
        return "Hello World !!";
    }

}
// CODE REMOVED. Check Edit History If you want.
 类似资料:
  • 我的Spring启动应用程序在从Okta服务器重定向后给我一个错误为404。请给我一些帮助来解决这个问题。我的配置如下。 这是我的Okta服务器重定向 https://dev-40483106.okta.com/oauth2/default/v1/authorize?响应类型=代码 这是我收到404错误的重定向URI http://localhost:8082/mms-sso/auth?code=

  • 我已经创建了一个spring boot后端和一个angular前端,现在我想使用sprint boot在8080上运行,其主页显示索引。html(来自angular)。 我已经使用ng build--prod命令在angular中创建了dist文件夹,并将其复制到(src/main/resources/static)文件夹中。在此处输入图像描述 除此之外,我读了很多关于这个的stackoverfl

  • 重定向到 不执行。谁面临过类似的问题?

  • 或者,如果有其他方法来完成这项任务? AuthenticationController.Java

  • 我需要编写一个使用Spring Boot控制器和多部分文件的上传角度模块。但是当我上传文件时,我有一个错误 我尝试了很多更改,但每次都出现这个错误。这是我的angular file sender数据服务 这是我的控制器 它无法使用或不使用多部分解析器。你能帮我上传这个文件吗?

  • 问题内容: 任何人都有一个简单的指令来自动显示Bootstrap模式吗?在Bootstrap 3中,他们取消了自动显示模态的功能,因此我不能使用有角度的ng-if show块。任何帮助都会很棒。 问题答案: 已针对angular 1.2和Bootstrap 3.1.1更新: http : //embed.plnkr.co/WJBp7A6M3RB1MLERDXSS/ 我扩展了Ender2050的答案