2016-09-12 6 views
0

私はThymeleafに、ドメイン部分がパラメータであり、一部の断片がリテラル文字列であり、クエリパラメータもパラメータ化されているURLを構築しようとしています。 documentationThymeleafでリテラルURLとパラメータホスト名を結合する

は、いくつかの例を提供しています:

@{${myDomain}/literalUrl} 
@{${myDomain}'/literalUrl'} 
@{/literalUrl(query=${queryValue})} 
@{'/literalUrl'(query=${queryValue})} 
@{${myDomain}(query=${queryValue})} 

あるいは

<a th:with="baseUrl=${myDomain}" th:href="@{${baseUrl}}(query=${queryValue})}"> 

別に、これらのすべてはうまく動作します。しかし、私はそれらを結合しようとした場合、ドメイン部分が突然解決することを拒否:

@{${myDomain}/literalUrl(query=${queryValue})}@{${myDomain}+'/literalUrl'+(query=${queryValue})}各解決に${myDomain}/literalUrl?query=queryValueに、と私はThymeleafが正しく私のURL https://example.com/literalUrl?query=queryValue

答えて

0

ドン」を生成するために取得するにはどうすればよい

これが問題の正当な解決策であるかどうかはわかりませんが、最初のパラメーターでliteralUrlを連結するとうまくいきます。下側:追加のモデルパラメータが必要です。

<a th:href="@{${linkData+path}(q=${queryParam})}">some link</a> 

モデルのparamsと

<a href="https://example.com/literalUrl?q=queryValue">some link</a> 

を取得します。

mv.addObject("linkData", "https://example.com"); 
mv.addObject("path", "/literalUrl"); 
mv.addObject("queryParam", "queryValue"); 
関連する問題