如何调用Spring Boot(使用tomcat)url重定向没有模板引擎,如localhost:8080 / sample / someparameter

时间:2016-06-30 20:55:52

标签: spring-boot

我正在使用spring boot + restful WS + angular2。修剪我的网址就像http://localhost:8080/accountSummary/someparameter

当我运行此操作时,我在浏览器中收到以下错误

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Thu Jun 30 16:24:03 EDT 2016
There was an unexpected error (type=Internal Server Error, status=500).
Circular view path [index.html]: would dispatch back to the current handler URL [/accountSummary/index.html] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)

我在app文件夹下的spring boot conf文件中使用了以下配置:

@Controller
@Configuration
public class WebController extends WebMvcConfigurerAdapter{

// first option I have tried

    /*public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/accountSummary/**").setViewName("index.html");
    }*/

//我试过的第二个选项

   /* @RequestMapping(value = "/{[accountSummary:[^\\.]*}")
    public String redirect() {
        return "forward:/index.html";
    }*/

我试过的第三个选项

    @RequestMapping(value={"/accountSummary/{*}"},  produces="text/html")
    public String getIndex(Model model, HttpServletRequest request){
      return "index.html";
    }
}

目前这对我来说是个噱头。我正在使用纯弹簧启动结构,就像我将所有Web应用程序内容移动到目标文件夹下的静态文件夹中。

3 个答案:

答案 0 :(得分:0)

您一直走在正确的道路上,但使用了错误的前缀。如果您要发送重定向,则应使用redirect:作为前缀,而不是forward:

答案 1 :(得分:0)

使用Angular2修复了它。我保留了{provide:LocationStrategy,useClass:HashLocationStrategy}。如果您提供localhost:8080 /#/ - 如果您提供参数,它将重定向到带有参数的pagename。

感谢所有人的帮助。

答案 2 :(得分:-1)

@RestController 

在控制器中添加此注释

 @RequestMapping(value = "/accountSummary/someparameter", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)

根据您的方法方法级别更改上添加此内容。