我有一个前端带有angular的spring boot应用程序。
我正在使用html5模式的ui路由器,我希望spring能够呈现相同的索引。所有未知路径上的html。
// Works great, but it also overrides all the resources
@RequestMapping
public String index() {
return "index";
}
// Seems do be the same as above, but still overrides the resources
@RequestMapping("/**")
public String index() {
return "index";
}
// Works well but not for subdirectories. since it doesn't map to those
@RequestMapping("/*")
public String index() {
return "index";
}
所以我的问题是,我如何创建一个后备映射,但它允许通过资源?
您可以在404处理程序中处理所有不匹配的请求。看看这个,有几个选项
您可以做的另一件事是重写DefaultAnnotationHandlerMapping
,并通过设置defaultHandler
属性来添加一种“一网打尽”的控制器。
公共空setDefaultHandler(Object defaultHandler)
设置此处理程序映射的默认处理程序。如果没有找到特定的映射,将返回此处理程序。默认为null
,表示没有默认处理程序。
为网站中的所有URL定义一个入口点。xml文件,如下所示:
<error-page>
<error-code>404</error-code>
<location>/Error_404</location>
</error-page>
这将捕获所有404,即页面未找到错误,并抛出/Error_404
url,在控制器中捕获并推送到所需位置。
我找到的最简单的方法是实现一个定制的404页面。
@Configuration
public class MvcConfig {
@Bean
public EmbeddedServletContainerCustomizer notFoundCustomizer(){
return new NotFoundIndexTemplate();
}
private static class NotFoundIndexTemplate implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/"));
}
}
}
Neil McGuigan提出了一个HandlerInterceptor,但我不明白该如何实现。我不太想知道该如何实现,因为使用html5历史推送状态的单页应用程序会想要这种行为。我还没有找到解决这个问题的最佳实践。
指的是指数的Spring综合路线。html,我正在尝试使用regex来捕获所有路由。但我得到了一个错误: 标记错误:java.util.regex.模式语法异常,在索引2处悬挂元字符“*” 当我通过修复这个问题时,我的正则表达式无法捕捉路由。 要求就同样的问题提供指导。
我想开发一个注销按钮,将我发送到登录路径,并从导航器中删除所有其他路径。文档似乎没有解释如何创建路由预测(RoutePredicate)或具有任何类型的removeAll功能。
问题内容: 我正在为基于React的单页应用程序开发spring后端,在其中我使用React-Router进行客户端路由。 在index.html页面旁边,后端在路径上提供数据。 为了在我的应用程序的根路径上提供index.html,我添加了一个资源处理程序 我想要的是在没有其他路由匹配时(例如,当我调用以外的路径时)提供index.html页。 在spring如何配置这种全包式路线? 问题答案:
问题内容: 我目前正在编写一个API,它将要求用户在每个请求的标头中传递身份验证令牌。现在我知道我可以创建一条综合路线了 但我想知道如何使它排除某些路线,例如或? 问题答案: 我不确定用户访问或时要发生什么,但是您可以为它们创建单独的路由;如果您在全部接收之前声明它们,则它们在处理传入请求时会首先遇到麻烦:
问题内容: 我有一个前缀要添加到每条路线。现在,我在每个定义处都向路线添加了一个常量。有没有一种方法可以自动执行此操作? 问题答案: 答案取决于你如何为该应用程序提供服务。 安装在另一个WSGI容器中 假设你将在WSGI容器(mod_wsgi,uwsgi,gunicorn等)中运行此应用程序;你实际上需要将该应用程序作为该WSGI容器的子部分挂载在该前缀处(任何讲WSGI的东西都可以使用),并将A
编辑:我已经用symfony设置了登录表单,授权工作正常。但是我想更深入地了解一下symfony的安全包是如何管理它的。 我想学习/了解Symfony安全处理认证的方式。如果我理解得很好,到目前为止,在Symfony中触发认证check_path行security.yml中指定的URL"/login_path": 然后控制器/监听器/服务通过变量POST[_username]和POST[_pass