如何为Controller操作动态创建URL?
考虑以下情况:
@Controller
@RequestMapping("controller")
public class Controller {
@RequestMapping("url")
public String method() {
return "Whatever"
}
}
我想做的是获取基本URL和concat控制器/URL。对于这种行为,Laravel例如提供了URL helper(action()方法)。Sping Boot 中有类似的东西吗?
5条答案
按热度按时间dphi5xsq1#
你可以使用UriComponentsBuilder来获取当前的url并将附加部分连接到它
hgncfbus2#
Sping Boot framework有一个库。你需要在你的项目中添加它来动态生成链接。下面给出了这个库的gradle依赖。
我假设你的构建系统是gradle,但如果你使用maven,请使用下面的语法。
之后,你可以动态生成链接如下。
3okqufwl3#
基于Tushar的答案,这是我通过名称生成URL的方法,具有一定的合理性,以防止损坏的链接:
bjp0bcyl4#
我认为使用@PathVariable会帮助您
然后你可以使用/controller/url/{这里是值} example /controller/url/www.google.com调用这个方法
zmeyuzjn5#
如果只想MapController,请使用属性文件
application.properties
如果您的Controller正在从Repository提供数据,那么Spring Data REST可以删除大部分样板文件并解决您的初始问题。
Spring Data REST
pom.xml
可以使用属性文件控制基URL。
application.properties
这就是你想要的/rest concat控制器/url