По мнению Жюльена Ричарда-Фоя, решения не существует.
Поэтому я предлагаю обходной путь, немного уродливый, потому что маршрут будет описан дважды.
Это быстрое решение ломает модель MVC, но можно поступить иначе, отправив UrlHelper в шаблон для примера.
В вашей модели добавьте метод generateUrlDetail()
:
public String generateUrlDetail() {
return String.format("/myRoute/%s/%d-%s.html", JavaExtensions.slugify(this.foo.name), this.id, JavaExtensions.slugify(this.bar));
}
Советы : Играй! позволяет определить маршрут с большим количеством идентификаторов, чем необходимо. Таким образом, можно написать маршрут с 2+ переменными, но в действии будет использоваться только идентификатор.
GET /myRoute/{foo}/{<[0-9]+>id}-{bar}.html Foo.detail(id)
А в вашем шаблоне:
<a href="${myObject.generateUrlDetail()}">Go</a>
Render : <a href="/myRoute/foo-name/13-bar-description.html">Go</a>
И это работает :)