2017-10-04 62 views
0

我用Thymeleaf模板开发Spring Boot应用程序。我想添加前缀(服务器上下文路径)到下面的代码,如'serverContext/user/' + user.id。我试图将$更改为@,但user.id已转换为字符串。如何获得百里香的上下文路径

谢谢。

<tr th:each="user : ${users}"> 
    <td><a th:href="${ '/user/' + user.id}">View</a></td> 
</tr> 

编辑:修正了<td><a th:href="@{/}+${ 'user/' + user.id}">View</a></td>

是任何其他的解决办法呢?

回答

0

application.properties中

server.context-path=/test 

服务类:

@Component("helperService") 
    public class HelperService { 

    @Value("${server.context-path}") 
     private String contextPath; 

     public String getContextPath(){ 

     return contextPath; 
     } 

} 

HTML文件:

<span th:text="${@helperService.getContextPath()}"></span> 
0

钍e的mrt工作,但提供了一个额外的bean,这是没有必要的。 只需注入ServerProperties并致电getContextPath()

此豆被提供为@ConfigurationProperties,因此已经可用。见ServerProperties

但是这解决了你所要求的,但是如果你不使用绝对路径,你的问题就不会成为问题。为什么不使用相对pathes这样的:

<td><a th:href="${ 'user/' + user.id}">View</a></td> 

这个链接会工作假设你是在$host$/serverContext

如果你是在$host$/serverContext/someOtherPath和要链接到你的用户页面下面将工作:

<td><a th:href="${ '../user/' + user.id}">View</a></td> 

等等。没有必要知道上下文路径。

+0

我在Tomcat上将Web应用程序部署为war文件,并使用context.xml文件设置上下文路径。当我将路径值从更改为时,href值不会更改。 –