Spring:如何使路由与页面上的 URL 保持同步?
Posted
技术标签:
【中文标题】Spring:如何使路由与页面上的 URL 保持同步?【英文标题】:Spring: How can I keep routes in sync with URLs on the page? 【发布时间】:2019-03-05 19:34:42 【问题描述】:如何使我的 UI 模板(例如 Thymeleaf 模板)中的链接与我的 Spring 应用程序中的相应请求映射保持同步?
我见过,例如Play 框架在其模板中使用@router-Object。 Spring是如何解决的?
一个例子:
Spring 控制器 - 简单
@Controller
public class UserController
@GetMapping("/users/username")
public String getUser(@PathParam String username)
// do some stuff....
return "user";
html 页面
<body>
<a href="/users/1">User details</a>
</body>
现在我想将“/users”更改为“/accounts”。我很确定我必须手动更新每个 html 页面以更新链接。有没有更简单的解决方案?
【问题讨论】:
【参考方案1】:据我所知,使用 Spring 的内置工具没有简单的方法可以做到这一点。但是,我认为这不会太难构建。您将需要以下内容:
定义了所有 URL 模板的 YAML 文件 一个Properties
Spring bean,包含您的 URL 映射(从 YAML 文件中读取)
你所有的@RequestMapping
注解都必须是prop值; IE。
@GetMapping("$urls.users.byUsername")
了解Properties
bean 的自定义标记,可以从您的 YAML 文件中定义的模板创建 URL。
【讨论】:
以上是关于Spring:如何使路由与页面上的 URL 保持同步?的主要内容,如果未能解决你的问题,请参考以下文章
如何使 ASP CheckBoxList 标签与复选框保持在同一行
Angular+ngrx:如何在路由器 url 遍历中保持存储状态?