Как параметризовать значение ссылки в контроллере пружины и тимелист? - PullRequest
1 голос
/ 29 января 2020

У меня есть два метода сопоставления "/ cars / new" и "/ used_cars":

@Controller
@RequestMapping("/cars")
public class CarsController {

    @GetMapping("/new")
    public String getNewCars() {      
        return "new_cars";
    }
}

@Controller
@RequestMapping("/")
public class UsedCarsController {

    @GetMapping("/used_cars")
    public String getUsedCars() {        
        return "used_cars";
    }
}

Затем я использую те же значения ссылок в html (тимилеф):

<nav>
  <a th:href="@{/cars/new}">new cars</a> |
  <a th:href="@{/used_cars}">used cars</a> 
</nav>

Как я могу параметризовать значения "/ cars / new" и "/ used_cars" в некоторых файлах * .properties, чтобы избежать повторения?

Ответы [ 2 ]

1 голос
/ 29 января 2020

Вы можете использовать свойства, чтобы решить этот вопрос. Определите свойство в application.properties

get.mapping.path=/new

И затем используйте свойство в своем отображении

@GetMapping("${get.mapping.path}")
public String getNewCars() {      
    return "new_cars";
}

Документ Thymeleaf-document может объяснить вам, как получить доступ к этим свойства из ваших шаблонов:

<nav>
  <a th:href="${@environment.getProperty('get.mapping.path')}">new cars</a>
</nav>

Если вам нужна поддержка интернационализации, этот другой ответ поможет вам.

1 голос
/ 29 января 2020

Согласно официальной документации :

Шаблоны в аннотациях @RequestMapping поддерживают заполнители $ {…} для локальных свойств и / или системных свойств и переменных среды. Это может быть полезно в тех случаях, когда путь, на который отображается контроллер, может потребоваться настроить с помощью конфигурации. Для получения дополнительной информации о заполнителях см. Javadocs класса PropertyPlaceholderConfigurer.

Некоторые из них будут выглядеть примерно так:

@RequestMapping("${endpoint.newcars}")

Это свойство должно быть объявлено в вашем application.properties или файл application.yml

endpoint.newcars=/cars/new

Для части Thymleaf вы можете получить доступ к своим свойствам, используя:

${@environment.getProperty('endpoint.newcars')}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...